I. TÌM HIỂU VỀ CÁC LOẠI RAID
RAID: (nhóm các chữ đầu của các từ tiếng Anh sau: Redundant Arrays of
Independent Disks) là hình thức ghép nhiều ổ cứng vật lý thành một hệ ổ
cứng có chức năng gia tăng tốc độ đọc/ghi dữ liệu hoặc nhằm tăng thêm sự
an toàn của dữ liệu chứa trên hệ thống đĩa hoặc kết hợp cả hai yếu tố trên.
LỊCH SỬ
Lần đầu tiên RAID được phát triển năm 1987 tại trường Đại học
California ở Berkeley với những đặc điểm chỉ ghép các phần đĩa cứng nhỏ
hơn thông qua phần mềm để tạo ra một hệ thống đĩa dung lượng lớn hơn
thay thế cho các ổ cứng dung lượng lớn giá đắt thời bấy giờ.
Hội đồng tư vấn phát triển RAID (RAID Advisory Board: Viết tắt là
RAB) đã ra thành lập tháng 7 năm 1992 để định hướng, lập ra các tiêu
chuẩn, định dạng cho RAID. RAB đã phân ra các loại cấp độ RAID (tôi dịch
từ từ: level), các tiêu chuẩn phần cứng sử dụng RAID. RAB đã phân ra 7
loại cấp độ RAID từ cấp độ 0 đến cấp độ 6. Cấp độ ở đây không được hiểu
rằng cứ cấp độ cao là cao cấp hoặc là "đời sau", mà chúng chỉ phân biệt rằng
giữa loại RAID này và loại RAID khác, (nhưng lại được sử dụng để giải
thích giữa các loại với nhau).
Vì RAID mang tính toàn vẹn dữ liệu cao , phục hồi nhanh chóng nên
RAID chủ yếu được ứng dụng vào các máy server , nhưng không vì thế mà
máy trạm không có dùng RAID được , chúng ta cũng có thể hoàn toàn dùng
công nghệ RAID cho các máy trạm . RAID đã được giới thiệu cách đây
khoảng 30 năm và chúng được phát triển qua từng năm .
CÁC LOẠI RAID
Theo RAB thì RAID được chia thành 7 cấp độ (level), mỗi cấp độ có các
tính năng riêng, hầu hết chúng được xây dựng từ hai cấp độ cơ bản là RAID
0 và RAID 1.
RAID 0
1
RAID 0 là cấp độ cơ bản: Các dữ liệu cần chứa
trên hệ thống RAID 0 được phân tách thành hai phần để
chứa trên tối thiểu hai ổ cứng khác nhau.
Đòi hỏi tối thiểu hai đĩa cứng, RAID 0 cho phép
máy tính ghi dữ liệu lên chúng theo một phương thức
đặc biệt được gọi là Striping. Một cách đơn giản nhất, ta
có thể hiểu theo ví dụ sau: Có hai ổ cứng: Ổ 0 và ổ 1,
với dữ liệu mang nội dung A (có thể phân tách thành
hai phần dữ liệu bằng nhau là A1 và A2) sẽ được ghi lại
ở cùng trên hai đĩa: Đĩa 0 ký tự dữ liệu A1 và đĩa 1
chứa dữ liệu A2. Khi đọc dữ liệu A này thì đồng thời cả
hai ổ cứng đều hoạt động, cùng lấy ra dữ liệu A1 và A2
trên mỗi ổ cứng. Hệ điều hành sẽ tiếp nhận được nguyên vẹn nội dung dữ
liệu A như nó được ghi vào.
Qua ví dụ trên có thể nhận thấy rằng tốc độ đọc và ghi dữ liệu của hệ
thống RAID 0 được tăng lên gấp đôi (cùng một thời điểm cùng đọc và cùng
ghi trên cả hai ổ cứng vật lý khác nhau). Do đó RAID 0 rất phù hợp với các
hệ thống máy chủ, các máy tính của game thủ khó tính hoặc các máy tính
phục vụ việc đọc/ghi dữ liệu với băng thông cao. Ở máy chủ, ta biết rằng
việc truy cập dữ liệu để phục vụ người truy xuất được tiến hành hầu như
đồng thời (ví dụ bạn đang truy cập vào máy chủ chứa các nôi dung của blog
này, thấy rằng trong một thời điểm thì không chỉ có bạn, mà còn có rất nhiều
người khác cùng tham gia truy cập, như vậy nếu như máy chủ chỉ có một ổ
cứng thì việc truy cập sẽ rất chậm).
Cũng trong ví dụ trên, nếu như xảy ra hư hỏng một trong hai ổ cứng
thì sẽ ra sao ?. Câu trả lời là dữ liệu sẽ mất hết, bởi dữ liệu cùng được tách ra
ghi ở hai đĩa không theo dạng hoàn chỉnh. Trong ví dụ trên, nếu như chỉ còn
một chữ A1 (hoặc A2) thì hệ thống không thể nhận biết chính xác đầy đủ dữ
liệu được ghi vào là A. Vậy đặc điểm của RAID 0 sẽ là làm tăng băng thông
đọc/ghi dữ liệu, nhưng cũng làm tăng khả năng rủi ro của dữ liệu khi hư
hỏng ổ cứng.
RAID 1
RAID 1 cũng là một cấp độ cơ bản. Từ
các nguyên lý của RAID 0 và RAID 1 có thể
giải thích về các cấp độ RAID khác.
RAID 1 là sự kết hợp của ít nhất hai ổ
cứng trong đó dữ liệu được ghi đồng thời trên
cả hai ổ cứng đó (Mirroring). Lặp lại ví dụ trên:
2
Nếu dữ liệu có nội dung A được phân tách thành A1, A2 thì RAID 1 sẽ ghi
nội dung A được ghi tại đồng thời cả hai ổ cứng 0 và ổ cứng 1.
Mục đích của RAID 1 là tạo ra sự lưu trữ dữ liệu an toàn. Nó không
tạo ra sự tăng tốc độ đọc và ghi dữ liệu (tốc độ đọc/ghi tương đương với chỉ
sử dụng duy nhất một ổ cứng). RAID 1 thường sử dụng trong các máy chủ
lưu trữ các thông tin quan trọng. Nếu có sự hư hỏng ổ cứng xảy ra, người
quản trị hệ thống có thể dễ dàng thay thế ổ đĩa hư hỏng đó mà không làm
dừng hệ thống. RAID 1 thường được kết hợp với việc gắn nóng các ổ cứng
(cũng giống như việc gắn và thay thế nóng các thiết bị tại các máy chủ nói
chung).
RAID 2
RAID 2 thì ít được sử dụng trong thực tế, cũng có ít tài liệu nói về loại
RAID này. RAID 2 gồm hai cụm ổ đĩa, cụm thứ nhất chứa các dữ liệu được
phân tách giống như là RAID 0, cụm thứ hai chứa các mã ECC dành cho sửa
chữa lỗi ở cụm thứ nhất. Sự hoạt động của các ổ đĩa ở RAID 2 là đồng thời
để đảm bảo rằng các dữ liệu được đọc đúng, chính do vậy chúng không hiệu
quả bằng một số loại RAID khác.
RAID 2 không sử dụng bất kỳ công nghệ nào trong số những chuẩn
RAID mang tính chính thức như Mirroring, Striping hay Parity. Cơ chế hoạt
động của RAID 2 có nhiều nét khá giống với những loại RAID kết hợp
Striping và Parity ( bao gồm từ RAID 3 đến RAID 7 ). Điểm khác biệt là
ngoài các đĩa cứng dùng trong việc lưu trữ, các đĩa cứng còn lại nhận nhiệm
vụ tính toán và sửa các lỗi trong quá trình đọc và ghi đĩa. RAID 2 chỉ là một
loại RAID được đề cập đến trong tài liệu của viện nghiên cứu Berkeley mà
chưa chính thức được đưa vào thực tế vì giá thành quá cao của nó.
3
RAID 3
RAID 3 là sự cải tiến của RAID 0
nhưng có thêm (ít nhất) một ổ cứng chứa
thông tin có thể khôi phục lại dữ liệu đã
hư hỏng của các ổ cứng RAID 0. Truyền
dữ liệu song song có kiểm tra Chẵn Lẻ.
Mỗi khối dữ liệu sẽ được chia nhỏ và
được phân tán thành từng nhóm trên
nhiều đĩa dữ liệu khác nhau. Các thông
tin hỗ trợ dự phòng và kiểm tra lỗi sẽ
được lưu trữ trên các đĩa riêng biệt gọi là đĩa kiểm tra. Các hỏng hóc về đĩa
cứng thường không ảnh hưởng nhiều đến các đĩa dữ liệu, hiệu suất và độ an
toàn chung của dữ liệu.
Tốc độ ĐỌC & GHI dữ liệu rất cao. Giả sử dữ liệu A được phân tách
thành 3 phần A1, A2, A3, khi đó dữ liệu được chia thành 3 phần chứa trên
các ổ cứng 0, 1, 2 (giống như RAID 0). Phần ổ cứng thứ 3 chứa dữ liệu của
tất cả để khôi phục dữ liệu có thể sẽ mất ở ổ cứng 0, 1, 2. Giả sử ổ cứng 1 hư
hỏng, hệ thống vẫn hoạt động bình thường cho đến khi thay thế ổ cứng này.
Sau khi gắn nóng ổ cứng mới, dữ liệu lại được khôi phục trở về ổ đĩa 1 như
trước khi nó bị hư hỏng.Yêu cầu tối thiểu của RAID 3 là có ít nhất 3 ổ cứng.
RAID 4
Sử dụng các đĩa dữ liệu độc lập và các đĩa kiểm tra dùng chung
(Independent data disks with shared parity disks) - Là công nghệ RAID
tương tự như RAID 3 nhưng ở một mức độ các khối dữ liệu lớn hơn chứ
không phải đến từng byte, các đĩa cứng dữ liệu được quản lý độc lập thay vì
đồng bộ với nhau thành một hệ thống.
4
Tốc độ ĐỌC dữ liệu (READ) rất cao. Tỉ lệ của ECC (Parity) disk /
data disk càng thấp thì càng hiệu quả. Tốc độ Ghi tổng thể (aggregate Read)
cao. Chúng cũng yêu cầu tối thiểu 3 đĩa cứng (ít nhất hai đĩa dành cho chứa
dữ liệu và ít nhất 1 đĩa dùng cho lưu trữ dữ liệu tổng thể). RAID 4 rất ít khi
được sử dụng.
RAID 5
RAID 5 thực hiện chia đều dữ liệu trên các ổ đĩa giống như RAID 0
nhưng với một cơ chế phức tạp hơn. Đây có thể coi là dạng RAID mạnh mẽ
nhất cho người dùng văn phòng và gia đình với 3 hoặc 5 đĩa cứng riêng biệt.
Dữ liệu và bản sao lưu được chia lên tất cả các ổ cứng. Ví dụ về 8 đoạn dữ
liệu (1-8) và giờ đây là 3 ổ đĩa cứng. Đoạn dữ liệu số 1 và số 2 sẽ được ghi
vào ổ đĩa 1 và 2 riêng rẽ, đoạn sao lưu của chúng được ghi vào ổ cứng 3.
Đoạn số 3 và 4 được ghi vào ổ 1 và 3 với đoạn sao lưu tương ứng ghi vào ổ
đĩa 2. Đoạn số 5, 6 ghi vào ổ đĩa 2 và 3, còn đoạn sao lưu được ghi vào ổ đĩa
1 và sau đó trình tự này lặp lại, đoạn số 7,8 được ghi vào ổ 1, 2 và đoạn sao
lưu ghi vào ổ 3 như ban đầu. Như vậy RAID 5 vừa đảm bảo tốc độ có cải
thiện, vừa giữ được tính an toàn cao. Dung lượng đĩa cứng cuối cùng bằng
tổng dung lượng đĩa sử dụng trừ đi một ổ. Tức là nếu bạn dùng 3 ổ 80GB thì
dung lượng cuối cùng sẽ là 160GB.
5
RAID 5 cũng yêu cầu tối thiểu có 3 ổ cứng. Chi phí dành cho RAID 5
cũng khá cao.
RAID 6
Sử dụng các đĩa dữ liệu độc lập
(independent data disk) và hai hệ thống mã kiểm
tra độc lập phân tán (two independent distributed
parity schemes): Là công nghệ RAID có mức độ
tin cậy (an toàn) cao nhất (highest reliability)
nhưng không được sử dụng rộng rãi. Nó là công
nghệ RAID tương tự như RAID Level 5 nhưng có cơ chế thực hiện 2 tính
toán kiểm tra lỗi độc lập với nhau nhằm tăng cường khả năng chịu lỗi (cơ
chế này gọi là kiểm tra lỗi chẵn lẻ hai chiều: two-dimensional parity). Dữ
liệu được phân tán theo từng khối trên 1 tập hợp nhiều ổ đĩa khác nhau,
tương tự như ở RAID 5, và một tập hợp thứ hai gồm các thông tin kiểm tra
được tính toán và ghi trên tất cả các đĩa khác nhau. RAID 6 cung cấp khả
năng chịu lỗi "cực cao" (extremely high data fault tolerance) và có thể "chịu
đựng" được sự cố nhiều ổ đĩa hư đồng thời (multiple simutaneous drive
failures). Nó là một GIẢI PHÁP HOÀN HẢO cho các ứng dụng "cực kỳ"
quan trọng (mission-critical application).
RAID 6 yêu cầu tối thiểu 4 ổ cứng. Nếu với 4 ổ cứng thì chúng cho
phép hư hỏng đồng thời đến 2 ổ cứng mà hệ thống vẫn làm việc bình
thường, điều này tạo ra một xác xuất an toàn rất lớn. Chính do đó mà RAID
6 thường chỉ được sử dụng trong các máy chủ chứa dữ liệu cực kỳ quan
trọng.
6
RAID 7 (RAID 3 và 4)
Chế độ hoạt động dị bộ được tối ưu hóa hỗ trợ tốc độ nhập xuất và tốc
độ truyền dữ liệu rất cao.
Các đặc điểm chính về kiến trúc : Tất cả các giao diện nhập xuất đều
là dị bộ, độc lập và được lưu trong vùng đệm, kể cả các nhập xuất qua giao
diện chính. Tất cả các tác vụ Đọc và Ghi đều được lưu trữ trong bộ đệm
trung tâm thông qua kênh truyền X tốc độ cao. Ổ đĩa chứa thông tin kiểm tra
chuyên biệt có thể được gắn ở bất cứ kênh nhập xuất nào. Hệ điều hành hỗ
trợ thời gian thực thường trú trên bộ xử lý của card điều khiển. Kênh truyền
thông được điều khiển bởi hệ điều hành thời gian thực nhúng sẵn. Hệ thống
mở sử dụng các ổ đĩa SCSI và các Bus mở rộng, mainboard và các bộ nhớ
chuẩn. Kênh truyền dữ liệu dựa trên bộ nhớ truy cập nhanh nội bộ tốc độ
cao. Tạo mã sửa lỗi và và nạp bộ nhớ truy cập nhanh. Nhiều ổ đĩa được kết
nối trong hệ thống có thể được định nghĩa như là các đĩa dự phòng nóng.
Khả năng quản trị: hệ thống RAID 7 có thể hỗ trợ giao thức quản trị mạng
SNMP cho phép theo dõi và quản lý từ xa.
Hiệu suất Ghi cao hơn từ 25% - 90% so với đĩa đơn và từ 1.5 - 6 lần
tốt hơn các mức RAID khác. Các giao diện chính có thể được mở rộng để
kết nối thêmhoặc để tăng cường băng thông truyền dữ liệu qua giao diện
chính. Các tác vụ Đọc ít trong môi trường đa người dùng có tỉ lệ sử dụng bộ
nhớ cache rất cao dẫn đến thời gian truy cập gần bằng 0. Hiệu suất Ghi được
tăng cường khi số đĩa trong dãy tăng lên. Thời gian truy cập giảm mỗi khi
tăng số trục quay trong dãy. Không phát sinh việc truyền dữ liệu cho tác vụ
điều khiển kiểm tra lỗi dữ liệu. RAID 7 là một thương hiệu được đăng ký
của Storage Computer Corporation. Chi phí triển khai tính trên một MB dữ
liệu là “cực kỳ” cao. Bộ nguồn hệ thống cần phải sử dụng UPS để tránh
trường hợp bị mất dữ liệu lưu trữ trong bộ nhớ truy cập nhanh (cache data).
7
RAID 10
Độ tin cậy rất cao và hiệu suất (về tốc độ) cao. Là công nghệ RAID
kết hợp giữa "Tạo đĩa ảnh" - mirroing (RAID 1) và "Phân tán dữ liệu trên
nhiều đĩa" - stripping (RAID 0), sự kết hợp này mang lại độ an toàn dữ liệu
rất cao bên cạnh khả năng truy cập được cải thiện rất đáng kể.
RAID 10 được thực hiện với các thành phần của dãy phân tán
(stripped array) là các dãy đĩa RAID 1. Nghĩa là trong RAID 0, dữ liệu được
phân tán trên các "đĩa" khác nhau; còn ở RAID 10, dữ liệu được phân tán
trên nhiều "dãy đĩa" khác nhau (các dãy đĩa này đã được "sao chép" ra nhiều
đĩa "ảnh" khác nhau). RAID 10 có khả năng chịu lỗi tương tự RAID 1. Tốc
độ nhập xuất cao do phân tán các dãy đĩa RAID 1. Trong một số trường hợp,
RAID 10 có thể "chịu đựng" được sự cố nhiều ổ đĩa hư đồng thời. Đây là
giải pháp phù hợp cho các ứng dụng có nhu cầu sử dụng RAID 1 vì mục
đích an toàn dữ liệu và lại muốn có thêm "một chút xíu cải thiện về hiệu
suất". RAID Level 10 cần sử dụng ít nhất là 4 đĩa cứng. Các ứng dụng đề
nghị sử dụng RAID 10: các máy chủ dữ liệu (database server) đòi hỏi hiệu
suất (tốc độ) và khả năng chịu lỗi cao.
Khuyết điểm: rất đắt tiền / tổng phí cao. Tất cả các ổ đĩa cứng phải di
chuyển song song với nhau theo rãnh xác định, điều này làm giảm khả năng
"chịu đựng" lỗi của hệ thống. Khả năng mở rộng rất hạn chế với chi phí
tương ứng rất cao.
RAID 01
Tốc độ truyền dữ liệu cao. RAID 0+1 được thực hiện bằng cách tạo
các dãy đĩa ảnh (mirrored array) với các thành phần là các đĩa cứng đã tạo
thành dãy RAID 0. Nghĩa là phân tán dữ liệu (stripping) trước rồi mới tạo
đĩa ảnh (mirroring) sau. RAID 0+1 có cùng khả năng chịu lỗi tương tự như
RAID Level 5.
8
Tốc độ nhập xuất cao nhờ các thành phần của dãy là các dữ liệu phân
tán. Kỹ thuật này rất thích hợp với những nơi có nhu cầu cao về tốc độ
nhưng không quan tâm đến việc đạt độ an toàn tối đa. Khuyết điểm: Một đĩa
đơn bị hư có thể kéo theo cả toàn dãy bị lỗi. Về cơ bản, RAID 0+1 gần
giống như RAID 0. Rất đắt tiền / tổng phí cao. Tất cả các ổ đĩa cứng phải di
chuyển song song với nhau theo rãnh xác định, điều này làm giảm khả năng
"chịu đựng" lỗi của hệ thống.
RAID 53
Tốc độ nhập xuất và tốc độ truyền dữ liệu cao. RAID 53 đáng ra phải
được gọi là RAID "03" vì nó được thực hiện như một dãy đĩa phân tán có
các thành phần là các dãy RAID 3 (thay vì các đĩa đơn). Khả năng truyền dữ
liệu tốc độ cao nhờ vào các thành phần là các dãy RAID 3. Tốc độ nhập xuất
cao đối với các yêu cầu đơn giản nhờ vào việc phân tán dữ liệu theo RAID
0. Đây là giải pháp tốt cho những nơi muốn sử dụng RAID 3 (đảm bảo độ an
toàn và hiệu suất hoạt động cao) nhưng lại muốn thêm "một chút tăng thêm"
về tốc độ. RAID Level 53 cần ít nhất là 5 ổ đĩa cứng.
9
Khuyết điểm: Chi phí thực hiện rất cao; tất cả các trục quay đĩa cứng
phải hoạt động đồng bộ với nhau, điều này hạn chế việc lựa chọn các ổ đĩa
cứng khi thực hiện hệ thống; việc phân tán dữ liệu theo từng byte (byte
stripping) sẽ kéo theo khả năng sử dụng không hiệu quả dung lượng đĩa đã
được định dạng.
10
Bảng so sánh về một số công nghệ RAID
Mức RAID
(RAIDLevel)
Mô tả
(Description)
Chi phí
về Đĩa
(Disk
cost)
Độ an toàn
dữ liệu
(Data
Reliability)
Truyền dữ
liệu
(Data
Transfer)
Tốc độ Nhập/Xuất
tối đa
(Max. I/O rate)
0
Phân tán đĩa
(Disk stripping)
Dữ liệu được
phân tán trên
nhiều đĩa trong
dãy. Không hỗ
trợ khả năng
chịu lỗi.
N (Là số
đĩa có
thể được
sử dụng
để chứa
dữ liệu).
Kém hơn so
với đĩa đơn.
(Tốc độ) Rất
cao.
Rất cao cho các tác
vụ Đọc và Ghi.
1
Tạo đĩa ảnh
(Mirroring)
Tất cả dữ liệu
được sao chép
trên N đĩa độc
lập.
2N
Cao hơn các
mức 2,3,4
hoặc 5 nhưng
thấp hơn
mức 6.
Đọc: cao hơn
đĩa đơn.
Ghi: tương tự
đĩa đơn.
Đọc: lên tới 2 lần
đĩa đơn.
Ghi: tương tự đĩa
đơn.
2
Dữ liệu được
bảo vệ bởi mã
sửa lỗi (ECC
Hamming
code). Các
thông tin sữa
lỗi được phân
tán trên m đĩa
(m: số đĩa chứa
mã sửa lỗi)
N+m
Cao hơn
nhiều so với
đĩa đơn.
Có thể so
sánh với các
mức 3,4 hoặc
5.
Cao nhất.
Tương đương 2 lần
tốc độ đĩa đơn.
3
Truyền dữ liệu
song song có
kiểm tra chẵn lẻ
(parallel
transfer with
parity)
Mỗi nhóm dữ
liệu (sector)
được chia nhỏ
và phân tán trên
tất cả các đĩa dữ
liệu (N). Thông
tin sửa lỗi được
lưu trên một đĩa
riêng.
N+1
Cao hơn
nhiều so với
đĩa đơn.
Có thể so
sánh với các
mức 2,4 hoặc
5.
Cao nhất.
Tương đương 2 lần
tốc độ đĩa đơn.
4
Dữ liệu được
phân tán theo
từng khối. Các
thông tin sửa
lỗi được lưu trữ
trên một đĩa
riêng.
N+1
Cao hơn
nhiều so với
đĩa đơn.
Có thể so
sánh với các
mức 2,3 hoặc
5.
Đọc: tương
tự như
trường hợp
phân tán đĩa
(disk
stripping).
Ghi: chậm
hơn nhiều so
với đĩa đơn.
Đọc: tương tự như
trường hợp phân tán
đĩa (disk stripping).
Ghi: thường chậm
hơn đĩa đơn.
11
5
Dữ liệu được
phân tán theo
từng khối. Các
thông tin sửa
lỗi được được
lưu xen kẽ với
dữ liệu thông
thường.
N+1
Cao hơn
nhiều so với
đĩa đơn.
Có thể so
sánh với các
mức 2,3 hoặc
4.
Đọc: tương
tự như
trường hợp
phân tán đĩa
(disk
stripping).
Ghi: chậm
hơn so với
đĩa đơn.
Đọc: tương tự như
trường hợp phân tán
đĩa (disk stripping).
Ghi: thường chậm
hơn đĩa đơn.
6
Tương tự RAID
5, nhưng có hai
hệ thông thông
tin sửa lỗi độc
lập.
N+1 Cao nhất
Đọc: tương
tự như
trường hợp
phân tán đĩa
(disk
stripping).
Ghi: chậm
hơn so với
RAID 5.
Đọc: tương tự như
trường hợp phân tán
đĩa (disk stripping).
Ghi: chậm hơn
nhiều so với RAID
5.
12
II. SO SÁNH KIẾN TRÚC CỦA CISC VÀ RISC
1, CISC (Complex Instruction Set Computer - Máy tính có tạp lệnh phức
tạp ).
Các kiến trúc với tập lệnh phức tạp CISC được nghĩ ra từ những năm
1960. Vào thời kỳ này, người ta nhận thấy các chương trình dịch khó dùng
các thanh ghi, rằng các vi lệnh được thực hiện nhanh hơn các lệnh và cần
thiết phải làm giảm độ dài các chương trình. Các đặc tính nầy khiến người ta
ưu tiên chọn các kiểu ô nhớ - ô nhớ và ô nhớ - thanh ghi, với những lệnh
phức tạp và dùng nhiều kiểu định vị. Điều này dẫn tới việc các lệnh có chiều
dài thay đổi và như thế thì dùng bộ điều khiển vi chương trình là hiệu quả
nhất.
Bảng I cho các đặc tính của vài máy CISC tiêu biểu. Ta nhận thấy cả
ba máy đều có điểm chung là có nhiều lệnh, các lệnh có chiều dài thay đổi.
Nhiều cách thực hiện lệnh và nhiều vi chương trình được dùng.
Bảng I: Đặc tính của một vài máy CISC
13
Chính sự phức tạp trong tập lệnh của CISC sẽ khó quản lý tập lệnh và
dễ gặp lỗi hơn.
Tiến bộ trong lãnh vực mạch kết (IC) và kỹ thuật dịch chương trình
làm cho các nhận định trước đây phải được xem xét lại, nhất là khi đã có
một khảo sát định lượng về việc dùng tập lệnh các máy CISC.
Ví dụ, chương trình dịch đã biết sử dụng các thanh ghi và không có sự
khác biệt đáng kể nào khi sử dụng ô nhớ cho các vi chương trình hay ô nhớ
cho các chương trình.
Một số bộ vi sử lý có kiến trúc CISC là: 80x86, Pentium,…
2, RISC ( Reduced Instruction Set Computer - Máy tính có tập lệnh rút
gọn).
Vào đầu những năm 1980, các máy RISC dựa chủ yếu trên một tập
lệnh cho phép thực hiện kỹ thuật ống dẫn một cách thích hợp nhất bằng cách
thiết kế các lệnh có chiều dài cố định, có dạng đơn giản, dễ giải mã. Máy
RISC dùng kiểu thực hiện lệnh thanh ghi - thanh ghi. Chỉ có các lệnh ghi
hoặc đọc ô nhớ mới cho phép thâm nhập vào ô nhớ. Bảng II diễn tả ba mẫu
máy RISC đầu tiên: mẫu máy của IBM (IBM 801) của Berkeley (RISC1 của
Patterson) và của Stanford (MIPS của Hennessy). Ta nhận thấy cả ba máy
đó đều có bộ điều khiển bằng mạch điện (không có ô nhớ vi chương trình),
Bộ xử lý IBM 370/168 DEC 11/780 iAPX 432
Năm sản xuất 1973 1978 1982
Số lệnh 208 303 222
Bộ nhớ vi
chương trình
420 KB 480 KB 64 KB
Chiều dài lệnh
(tính bằng bit)
16 - 48 16 - 456 6 - 321
Kỹ thuật chế
tạo
ECL - MSI TTl - MSI NMOS VLSI
Cách thực
hiện lệnh
Thanh ghi- thanh
ghiThanh ghi - bộ
nhớBộ nhớ - bộ nhớ
Thanh ghi - thanh
ghiThanh ghi - bộ
nhớBộ nhớ - bộ nhớ
Ngăn xếpBộ
nhớ- bộ nhớ
Dung lượng
cache
64 KB 64 KB 0
14
có chiều dài các lệnh cố định (32 bits), có một kiểu thi hành lệnh (kiểu thanh
ghi - thanh ghi) và chỉ có một số ít lệnh.
Bảng II : Đặc tính của ba mẫu đầu tiên máy RISC
Bộ xử lý IBM 801 RISC1 MIPS
Năm sản xuất 1980 1982 1983
Số lệnh 120 39 55
Dung lượng bộ nhớ vi
chương trình
0 0 0
Độ dài lệnh (tính bằng bit) 32 32 32
Kỹ thuật chế tạo ECL MSI NMOS VLSI NMOS VLSI
Cách thực hiện lệnh
Thanh ghi-
thanh ghi
Thanh ghi-thanh
ghi
Thanh ghi-thanh
ghi
Tóm lại, ta có thể định nghĩa mạch xử lý RISC bởi các tính chất sau:
- Có một số ít lệnh (thông thường dưới 100 lệnh ).
- Có một số ít các kiểu định vị (thông thường hai kiểu: định vị tức thì và
định vị gián tiếp thông qua một thanh ghi).
- Có một số ít dạng lệnh (một hoặc hai)
- Các lệnh đều có cùng chiều dài.
- Chỉ có các lệnh ghi hoặc đọc ô nhớ mới thâm nhập vào bộ nhớ.
- Dùng bộ tạo tín hiệu điều khiển bằng mạch điện để tránh chu kỳ giải mã
các vi lệnh làm cho thời gian thực hiện lệnh kéo dài.
- Bộ xử lý RISC có nhiều thanh ghi để giảm bớt việc thâm nhập vào bộ nhớ
trong.
Ngoài ra các bộ xử lý RISC đầu tiên thực hiện tất cả các lệnh trong một chu
kỳ máy.
Bộ xử lý RISC có các lợi điểm sau :
- Diện tích của bộ xử lý dùng cho bộ điều khiển giảm từ 60% (cho các bộ xử
lý CISC) xuống còn 10% (cho các bộ xử lý RISC). Như vậy có thể tích hợp
thêm vào bên trong bộ xử lý các thanh ghi, các cổng vào ra và bộ nhớ
cache
- Tốc độ tính toán cao nhờ vào việc giải mã lệnh đơn giản, nhờ có nhiều
thanh ghi (ít thâm nhập bộ nhớ), và nhờ thực hiện kỹ thuật ống dẫn liên tục
và có hiệu quả (các lệnh đều có thời gian thực hiện giống nhau và có cùng
dạng).
15
- Thời gian cần thiết để thiết kế bộ điều khiển là ít. Điều này góp phần làm
giảm chi phí thiết kế.
- Bộ điều khiển trở nên đơn giản và gọn làm cho ít rủi ro mắc phải sai sót mà
ta gặp thường trong bộ điều khiển.
Trước những điều lợi không chối cãi được, kiến trúc RISC có một số bất lợi:
Các chương trình dài ra so với chương trình viết cho bộ xử lý CISC. Điều
này do các nguyên nhân sau :
- Cấm thâm nhập bộ nhớ đối với tất cả các lệnh ngoại trừ các lệnh đọc và ghi
vào bộ nhớ. Do đó ta buộc phải dùng nhiều lệnh để làm một công việc nhất
định.
- Cần thiết phải tính các địa chỉ hiệu dụng vì không có nhiều cách định vị.
- Tập lệnh có ít lệnh nên các lệnh không có sẵn phải được thay thế bằng một
chuỗi lệnh của bộ xử lý RISC.
- Các chương trình dịch gặp nhiều khó khăn vì có ít lệnh làm cho có ít lựa
chọn để diễn dịch các cấu trúc của chương trình gốc. Sự cứng nhắc của kỹ
thuật ống dẫn cũng gây khó khăn.
- Có ít lệnh trợ giúp cho ngôn ngữ cấp cao.
- Các bộ xử lý CISC trợ giúp mạnh hơn các ngôn ngữ cao cấp nhờ có tập
lệnh phức tạp. Hãng Honeywell đã chế tạo một máy có một lệnh cho mỗi
động từ của ngôn ngữ COBOL.
- Các tiến bộ gần đây cho phép xếp đặt trong một vi mạch, một bộ xử lý
RISC nền và nhiều toán tử chuyên dùng.
Thí dụ, bộ xử lý 860 của Intel bao gồm một bộ xử lý RISC, bộ làm
tính với các số lẻ và một bộ tạo tín hiệu đồ hoạ.
Một số bộ vi sử lý có kiến trúc RISC là: Power PC, SPARC, ALPHA,
…
16