Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.34 MB, 131 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
UBND TỈNH BÀ RỊA – VŨNG TÀU
<b>TRƯỜNG CAO ĐẲNG KỸ THUẬT CƠNG NGHỆ</b>
<b>MƠN HỌC: CẤU TRÚC MÁY TÍNH</b>
<b>NGHỀ: KỸ THUẬT LẮP RÁP, SỬA CHỮA MÁY TÍNH</b>
<b>TRÌNH ĐỘ TRUNG CẤP </b>
(Ban hành kèm theo Quyết định số: /QĐ-CĐKTCN ngày…….tháng….năm ...
của Hiệu trưởng Trường Cao đẳng Kỹ thuật Công nghệ BR – VT)
<b>BÀ RỊA – VŨNG TÀU, NĂM 2020</b>
BM/QT10/P.ĐTSV/04/04
<b>TUYÊN BỐ BẢN QUYỀN</b>
Nhằm đáp ứng nhu cầu học tập và nghiên cứu cho giảng viên và học sinh
nghề Kỹ thuật lắp ráp, sửa chữa máy tính trong trường Cao đẳng Kỹ thuật Cơng
nghệ Bà Rịa – Vũng Tàu. Chúng tôi đã thực hiện biên soạn tài liệu Cấu trúc máy
tính .
Tài liệu được biên soạn thuộc loại giáo trình phục vụ giảng dạy và học tập,
lưu hành nội bộ trong nhà trường nên các nguồn thơng tin có thể được phép
dùng ngun bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.
<b>LỜI GIỚI THIỆU</b>
Giáo trình Cấu trúc máy tính là mơn học chun mơn. Mục đích của giáo
Mục được xây dựng và biên soạn trên cơ sở Chương trình khung đào tạo
nghề Kỹ thuật lắp ráp, sửa chữa máy tính đã được Hiệu trưởng trường Cao đẳng
kỹ thuật công nghệ Bà Rịa - Vũng Tàu phê duyệt.
Giáo trình Cấu trúc máy tính dùng để giảng dạy ở trình độ trung cấp được
biên soạn theo nguyên tắc quan tâm đến: tính định hướng thị trường lao động,
tính hệ thống và khoa học, tính ổn định và linh hoạt, hướng tới liên thông, chuẩn
đào tạo nghề khu vực và thế giới, tính hiện đại và sát thực với thực tế.
Nội dung giáo trình gồm 5 chương:
Chương I : Bảo hộ lao động
Chương II : Vệ sinh lao động trong sản xuất
Chương III: Kỹ thuật an toàn điện
Chương IV: Kỹ thuật an toàn dữ liệu và điện
Áp dụng việc đổi mới trong phương pháp dạy và học, giáo trình đã biên
soạn cả phần lý thuyết và thực hành. Giáo trình được biên soạn theo hướng mở,
kiến thức rộng và cố gắng chỉ ra tính ứng dụng của nội dung được trình bày.
Trên cơ sở đó tạo điều kiện để các giáo viên và học sinh, sinh viên sử dụng
thuận tiện trong việc giảng dạy cũng như làm tài liệu học tập, tham khảo và
nghiên cứu.
Trong quá trình biên soạn khơng tránh khỏi sai sót, ban biên soạn rất
Bà Rịa - Vũng Tàu, ngày tháng năm ………
Tham gia biên soạn
<b>MỤC LỤC</b>
<b>LỜI GIỚI THIỆU...1</b>
<b>MỤC LỤC...2</b>
<b>CHƯƠNG 1: MỞ DẦU...6</b>
1.Những khái niệm cơ bản...6
1.1 Máy tính...6
1.2. Các nguyên lý xây dựng và sự phân loại máy tính...7
1.2.1. Các nguyên lý xây dựng máy tính điện tử...7
1.2.2. Phân loại máy tính...8
1.3. Ngơn ngữ máy, mức, máy ảo...12
1.4. Các mức máy tính...13
2. Các thế hệ máy tính...18
2.1. Lịch sử máy tính...18
2.2. Máy tính hiện tại và tương lai...21
3. Thành quả của máy tính...23
CÂU HỎI ÔN TẬP...27
<b>CHƯƠNG 2: KIẾN TRÚC PHẦN MỀM BỘ XỬ LÝ...28</b>
1. Thành phần cơ bản của một máy tính...28
2. Định nghĩa kiến trúc máy tính...31
2.1. Kiến trúc phần mềm...31
2.2. Tổ chức máy tính...32
2.3. Lắp đặt phần cứng...32
2.3.1. Chuẩn bị các dụng cụ cần thiết...32
1.1 Bước đầu tiên: Kiểm tra cây máy tính của bạn...32
1.2 Bước 2: Lắp đặt CPU...33
Bước 3: Cài đặt RAM...33
Bước 4: Lắp đặt bo mạch chủ...33
Bước 5: Lắp đặt quạt làm mát (nếu có)...33
1.3 Bước 6: Lắp đặt hệ thống làm mát cho CPU...33
1.4 Bước 7: Lắp đặt ổ đĩa lưu trữ và ổ đĩa quang...33
1.5 Bước 8: Lắp đặt card đồ họa (và các phụ kiện PCI-e khác)...33
1.6 Bước 9: Lắp đặt bộ cấp nguồn...34
1.7 Các công đoạn cuối cùng...34
3. Tập lệnh...34
3.1. Các lệnh về bộ nhớ, tính tốn…...35
3.2. Các lệnh có điều kiện...35
3.2.1. Ghi nhớ điều kiện ...35
3.2.2. Nhảy vòng...37
3.3. Các lệnh chuyển hướng...37
4. Thủ tục...38
5. Tốn hạng...39
CÂU HỎI ƠN TẬP CHƯƠNG 2...41
<b>CHƯƠNG 3: TỔ CHỨC BỘ XỬ LÝ...42</b>
2. Bộ điều khiển...44
2.1. Bộ điều khiển điện tử...44
2.2. Bộ điều khiển vi chương trình...45
3. Diễn tiến thi hành lệnh mã máy...46
4. Ngắt...48
5. Kỹ thuật ống dẫn...50
5.1. Giới thiệu...50
5.2. Khó khăn trong kỹ thuật ống dẫn...51
5.3. Khó khăn do cấu trúc...51
5.4. Khó khăn do số liệu...52
5.5. Khó khăn do điều khiển...53
6. Ống dẫn, siêu ống dẫn, siêu vô hướng...54
6.1. Giới thiệu...55
6.1.1. Siêu ống dẫn...55
6.1.2. Siêu ống dẫn vô hướng...56
6.2. Hạn chế...56
1. Các loại bộ nhớ...58
1.1. RAM, ROM...58
1.2. Thiết bị lưu trữ...64
2. Các cấp bộ nhớ...69
2.1. Giới thiệu...69
2.2. Các cấp bộ nhớ...70
2.2.1. Bộ nhớ trong – Cache, RAM...71
2.2.2. Bộ nhớ ảo – HDD...73
3. Cách truy xuất dữ liệu trong bộ nhớ...77
4. Hiểu về bộ nhớ Cache và cách tổ chức bộ nhớ Cache trong CPU...77
4.1. Khái niệm: cache hit, cache miss, cache penalty...77
4.2. Hoạt động...78
4.2.1. Sắp xếp khối...78
4.2.2. Nhận diện khối...79
4.2.3. Thay thế khối...82
4.2.4. Chiến thuật ghi...82
4.3. Các mức Cache...84
4.4. Hiệu quả của Cache...85
CÂU HỎI ÔN TẬP...87
<b>CHƯƠNG 5: THIẾT BỊ NHẬP XUẤT...88</b>
1. Đĩa từ...88
1.1. Giới thiệu...88
1.2. Đĩa cứng...89
1.2.1. Cấu tạo đĩa cứng...89
1.2.2. Các chuẩn ghép nối đĩa cứng...91
1.2.3. Quản lý đĩa cứng...93
2. Đĩa quang...95
2.2. Các loại đĩa quang...97
2.3. Giới thiệu cấu tạo một số đĩa quang thông dụng...97
2.3.1. Đĩa CD-ROM, CD-R và CD-RW...97
2.3.2. Đĩa DVD-ROM, DVD-R và DVD-RW...98
2.3.3. Đĩa HD-DVD và Blu-ray DVD...100
3. Các loại thẻ nhớ...100
3.1. Khái niệm...100
3.2. Phân loại...101
3.2.1. Thẻ nhớ đa phương tiện (Multimedia Card):...101
3.2.2. Thẻ nhớ SD (SanDisk TransFlash):...102
3.2.3. Thẻ nhớ CompactFlash (CF)...106
3.3. Khái niệm cơ bản về các chuẩn tốc độ...106
4. Băng từ...107
5. Các chuẩn về BUS...107
5.1. Bus nối ngoại vi vào bộ xử lý và bộ nhớ trong...108
5.2. Giao tiếp giữa bộ xử lý với các bộ phận nhập xuất...112
6. An toàn dữ liệu trong lưu trữ...114
<b>CÂU HỎI ƠN TẬP...116</b>
<b>GIÁO TRÌNH MƠN HỌC</b>
<b>Tên mơn học: Cấu trúc máy tính </b>
<b>Mã mơn học: MH12</b>
<b>Vị trí, tính chất và vai trị của mơn đun:</b>
- Vị trí: là mơ đun mơn học cơ sở chun ngành được bố trí sau khi sinh viên học
xong mơn đun Tin học và học trước môn lắp ráp cài đặt máy tính là mơn học cơ sở
chun ngành đào tạo chun mơn nghề.
- Tính chất: Là mơn học chun ngành bắt buộc.
- Vai trị của mơn học: Là cơ sở ngành trang bị nhũng kiến thức về các thành phần
của máy tính như Mainboard, CPU, Ram, Ổ cứng, Ổ CD/DVC, Card mạng, Card màn
hình, Màn hình… và cách thức, cơ chế hoạt động của chúng.
<b>Mục tiêu môn học:</b>
- Về kiến thức:
+ Trình bày được lịch sử của máy tính, các thế hệ máy tính và cách phân loại
máy tính.
+ Trình bày được các thành phần cơ bản của kiến trúc máy tính, các tập lệnh.
Các kiểu kiến trúc máy tính: mơ tả kiến trúc, các kiểu định vị.
+ Trình bày được cấu trúc của bộ xử lý trung tâm: tổ chức, chức năng và
nguyên lý hoạt động của các bộ phận bên trong bộ xử lý. Mô tả diễn tiến thi hành một
lệnh mã máy và một số kỹ thuật xử lý thông tin: ống dẫn, siêu ống dẫn, siêu vơ hướng.
+ Trình bày được chức năng và nguyên lý hoạt động của các cấp bộ nhớ.
+ Trình bày được phương pháp an toàn dữ liệu trên thiết bị lưu trữ ngoài
- Về kỹ năng: Vận dụng các kiến thức đã học chọn được các thiết bị cho một bộ
máy tính bàn hồn chỉnh đáp ứng nhu cầu của người sử dụng.
- Về năng lực tự chủ và trách nhiệm: Có thể làm việc một cách độc lập hay làm
việc theo nhóm.
<b>CHƯƠNG 1: MỞ DẦU</b>
<b>Mã chương : 12.01</b>
<b>Giới thiệu :</b>
Trong chương này giới thiệu về lịch sử máy tính, cách phân loại máy tính
theo cơng dụng hay chức năng, khái niệm về thông tin, dữ liệu và các hệ thống
số và cách biểu diễn thông tin.
<b>Mục tiêu :</b>
- Trình bày được khái niệm máy tính
-Trình bày được ngun lý xây dựng máy tính
- Trình bày được lịch sử phát triển của máy tính
- Trình bày được các thành phần cơ bản của một máy vi tính
- Trình bày được các thành tựu của máy tính.
- Phân biệt được các loại máy tính
<b>Nội dung chính:</b>
1.Những khái niệm cơ bản
1.1 Máy tính
Máy tính là cơng cụ cho phép xử lý thông tin một cách tự động theo những
chương trình (program) đã được lập sẵn từ trước.
Mục đích làm việc của máy tính là xử lý thơng tin, trong đó chương trình đã
được lập sẵn quy định máy tính sẽ tiến hành xử lý thơng tin như thế nào.
Chương trình là một dãy các lệnh (tập các lệnh: set of instructions) theo một
trình tự nhất định để thực hiện một cơng việc nào đó từng bước một theo ý muốn
của người lập trình.
Như vậy, chương trình là một tập các chỉ thị để ra lệnh cho máy tính thực hiện
cơng việc nhằm đạt đến mục tiêu hay kết quả của việc thực hiện chương trình.
Muốn máy tính thực hiện chương trình tự động thì máy tính phải có chức năng
“nhớ” tập lệnh của chương trình.
1.2.1. Các nguyên lý xây dựng máy tính điện tử
Máy tính có thể làm việc thơng qua sự chuyển động của các bộ phận cơ
khí, điện tử (electron), photon, hạt lượng tử hay các hiện tượng vật lý khác đã
biết. Mặc dù máy tính được xây dựng từ nhiều công nghệ khác nhau song gần
như tất cả các máy tính hiện nay đều là máy tính điện tử.
Máy tính có thể trực tiếp mơ hình hóa các vấn đề cần được giải quyết,
Trong phần lớn các máy tính ngày nay, trước hết, mọi vấn đề sẽ được
chuyển thành các yếu tố toán học bằng cách diễn tả mọi thông tin liên quan
thành các số theo hệ nhị phân (hệ thống đếm dựa trên các số 0 và 1 hay còn gọi
là hệ đếm cơ số 2). Sau đó, mọi tính tốn trên các thơng tin này được tính tốn
bằng đại số Boole (Boolean algebra).
Các mạch điện tử được sử dụng để miêu tả các phép tính Boole. Vì phần
lớn các phép tính tốn học có thể chuyển thành các phép tính Bool nên máy tính
điện tử đủ nhanh để xử lý phần lớn các vấn đề tốn học (và phần lớn thơng tin
của vấn đề cần giải quyết đã được chuyển thành các vấn đề toán học).[<i>cần dẫn</i>
<i>nguồn</i>]<sub> Ý tưởng cơ bản này, được nhận biết và nghiên cứu bởi Claude E. Shannon </sub>
-người đã làm cho máy tính kỹ thuật số (digital computer) hiện đại trở thành hiện
thực.
Khi máy tính kết thúc tính tốn một vấn đề, kết quả của nó được hiển thị
cho người sử dụng thấy thơng qua thiết bị xuất như: bóng đèn, màn hình, máy
in, máy chiếu...
Những người mới sử dụng máy tính, đặc biệt là trẻ em, thường cảm thấy
khó hiểu về ý tưởng cơ bản là máy tính chỉ là một cái máy, nó khơng thể "suy
nghĩ" hay "hiểu" những gì nó hiển thị. Máy tính chỉ đơn giản thi hành các tìm
kiếm cơ khí trên các bảng màu và đường thẳng đã lập trình trước, rồi sau đó
thơng qua các thiết bị đầu ra (màn hình, máy in,...) chuyển đổi chúng thành
những ký hiệu mà con người có thể cảm nhận được thơng qua các giác quan
1.2.2. Phân loại máy tính
1.2.2.1. Theo kích thước, cơng dụng ( tính năng và giá tiền)
<b>-</b> Siêu máy tính
Một siêu máy tính là một máy tính vượt trội trong khả năng và tốc độ xử lý.
Thuật ngữ Siêu Tính Tốn được dùng lần đầu trong báo <i>New York World</i> vào
năm 1920 để nói đến những bảng tính (tabulators) lớn của IBM làm cho
trường Đại học Columbia. Siêu máy tính hiện nay có tốc độ xử lý hàng
nghìn teraflop (một teraflop tương đương với hiệu suất một nghìn tỷ phép
tính/giây) hay bằng tổng hiệu suất của 6.000 chiếc máy tính hiện đại nhất hiện
nay gộp lại (một máy có tốc độ khoảng từ 3-3,8 gigaflop).
<b>-</b> Siêu máy tính cỡ nhỏ
ban thay vì ở cấp độ doanh nghiệp mang đến cơ hội cho các nhà kinh doanh máy
tính mới bước vào thị trường. Nhìn chung, mục tiêu về giá cả của các máy tính
nhỏ hơn này là 1/10 các siêu máy tính lớn hơn. Đặc trưng của các máy tính này
là sự kết hợp giữa xử lí vector và đa xử lí cỡ nhỏ (small-scale).
Sự xuất hiện của máy trạm khoa học với giá còn thấp hơn nữa dựa trên bộ vi
xử lí cùng với đơn vị dấu chấm động (floating point unit, FPU) hiệu năng cao
vào thập kỉ 1990 (nhưR8000 của hãng MIPS và POWER2 của hãng IBM) đã
<b>-</b> Mainframe
Máy tính lớn (tiếng Anh: Mainframe) là loại máy tính có kích thước lớn được
sử dụng chủ yếu bởi các công ty lớn như các ngân hàng, các hãng bảo hiểm... để
chạy các ứng dụng lớn xử lý khối lượng lớn dữ liệu như kết quả điều tra dân số,
thống kê khách hàng và doanh nghiệp, và xử lý các giao tác thương mại.
Hiện nay thị trường máy tính lớn do IBM chiếm 99%, với máy IBM ZSeries
(hệ điều hành MVS). Z có nghĩa Zero, Zero downtime, có nghĩa là máy có thể
hoạt động 24/24 giờ mỗi ngày, 7/7 ngày mỗi tuần, và 365/365 ngày không
ngừng. So với các máy tính loại nhỏ như máy tính cá nhân, máy tính lớn cũng
như 1 chiếc xe tăng: vững chắc, có thể nhận hàng ngàn lệnh cùng 1 lúc. Ví dụ
máy IBM Z9 (2008) có thể được cài 20 processor và đáp ứng 8000.000.000 (8
tỉ) lệnh 1 giây.
<b>-</b> Máy chủ doanh nghiệp
Là một hệ thống máy tính chủ yếu dùng để phục vụ cho một doanh nghiệp
lớn. Ví dụ các loại máy chủ như máy chủ web, máy chủ in ấn, và máy chủ cơ sở
dữ liệu. Tính chất chủ yếu để phân biệt một máy chủ doanh nghiệp là ở tính ổn
định vì ngay cả một sự cố ngắn hạn cũng có thể gây thiệt hại hơn cả việc mua
mới và cài đặt mới hệ thống. Lấy ví dụ, một hệ thống máy tính trong thị trường
chứng khốn cấp quốc gia có trục trặc, chỉ cần ngưng hoạt động trong vịng vài
phút có thể cho thấy việc thay thế tồn bộ hệ thống hiện tại bằng một hệ thống
đáng tin cậy hơn vẫn là giải pháp tốt hơn.
Workstation (một số tài liệu gọi là máy trạm) được sử dụng theo các nghĩa:
Workstation là một được thiết kế
<b>-</b> Máy tính cá nhân (PC_ personal computer ) là một loại máy vi tính nhỏ
với giá cả, kích thước và sự tương thích của nó khiến nó hữu dụng cho từng cá
nhân.
+ Máy tính để bàn (Desktop)
+ Máy tính xách tay (Laptop).
+ Máy tính bản
+ Thiết bị kỹ thuật số PDA
1.2.2.2. Theo kiến trúc
<b>-</b> Kiến trúc máy tính von-neumann
<i>Hình 1.1. Kiến trúc máy tính von-Neumann nguyên thuỷ</i>
Các máy tính hiện đại ngày nay sử dụng kiến trúc máy tính von-Neumann
<i>Hình 1.2. Kiến trúc máy tính von-Neumann hiện đại</i>
Các đặc điểm của kiến trúc von-Neumann Kiến trúc von-Neumann dựa trên
3 khái niệm cơ sở: (1) Lệnh và dữ liệu được lưu trữ trong bộ nhớ đọc ghi chia sẻ
- một bộ nhớ duy nhất được sử dụng để lưu trữ cả lệnh và dữ liệu, (2) Bộ nhớ
được đánh địa chỉ theo vùng, khơng phụ thuộc vào nội dung nó lưu trữ và (3)
Các lệnh của một chương trình được thực hiện tuần tự. Quá trình thực hiện lệnh
được chia thành 3 giai đoạn (stages) chính: (1) CPU đọc (fetch) lệnh từ bộ nhớ,
(2) CPU giải mã và thực hiện lệnh; nếu lệnh yêu cầu dữ liệu, CPU đọc dữ liệu từ
bộ nhớ; và (3) CPU ghi kết quả thực hiện lệnh vào bộ nhớ (nếu có).
Kiến trúc máy tính Harvard là một kiến trúc tiên tiến như minh hoạ trên
Hình 6.
<i>Hình 1.3. Kiến trúc máy tính Harvard</i>
Kiến trúc máy tính Harvard chia bộ nhớ trong thành hai phần riêng rẽ: Bộ
nhớ lưu chương trình (Program Memory) và Bộ nhớ lưu dữ liệu (Data Memory).
Hai hệ thống bus riêng được sử dụng để kết nối CPU với bộ nhớ lưu chương
trình và bộ nhớ lưu dữ liệu. Mỗi hệ thống bus đều có đầy đủ ba thành phần để
truyền dẫn các tín hiệu địa chỉ, dữ liệu và điều khiển. Máy tính dựa trên kiến
trúc Harvard có khả năng đạt được tốc độ xử lý cao hơn máy tính dựa trên kiến
trúc von-Neumann do kiến trúc Harvard hỗ trợ hai hệ thống bus độc lập với
băng thơng lớn hơn. Ngồi ra, nhờ có hai hệ thống bus độc lập, hệ thống nhớ
trong kiến trúc Harvard hỗ trợ nhiều lệnh truy nhập bộ nhớ tại một thời điểm,
giúp giảm xung đột truy nhập bộ nhớ, đặc biệt khi CPU sử dụng kỹ thuật đường
ống (pipeline).
1.3. Ngôn ngữ máy, mức, máy ảo.
Một máy tính có <i>n</i> cấp được xem như <i>n</i> máy ảo khác nhau, mỗi máy ảo có
một ngơn ngữ máy riêng. Các thuật ngữ “cấp” và “máy ảo” có thể dùng thay thế
cho nhau. Chỉ có các chương trình viết bằng ngôn ngữ L1 mới được thực hiện
trực tiếp bởi các mạch điện tử mà không cần sự can thiệp của dịch hoặc phiên
dịch. Các chương trình viết bằng L2, L3, ... , Ln hoặc phải được phiên dịch bởi
một trình phiên dịch chạy trên cấp thấp hơn hoặc phải được dịch sang ngôn ngữ
khác tương ứng với cấp thấp hơn.
Một người viết các chương trình cho máy ảo cấp n khơng cần biết các trình
phiên dịch và dịch này cấu trúc máy đảm bảo các chương trình này sẽ được thực
thi bằng cách này hoặc bằng cách khác. Hoặc chúng được thực thi từng chỉ thị
một bởi một trình phiên dịch, rồi đến lượt trình phiên dịch này được thực thi bởi
một trình phiên dịch khác, hoặc chứng được thực thi trực tiếp bới các mạch đỉện
tử. Kết quả là trong cả 2 trường hợp, các chương trình đều dược thực thi.
Hầu hết các lập trình viên sử dụng máy <i>n</i> cấp chỉ quan tấm đến cấp cao nhất,
ít người quan tâm đến ngơn ngữ ở cấp thấp nhất. Tuy nhiên, những ai cần tìm
hiểu cách thức một máy tính làm việc thực sự đều phải nghiên cứu tất cả các
cấp. Những người quan tâm đến việc thiết kế các máy tính mới hoặc các cấp
mới cũng phải làm quen với các cấp máy khác ngoài cấp cao nhất. Các khái
niệm và kỹ thuật xây dựng các máy như là một chuỗi các cấp và chi tiết của một
số cấp quan trọng tạo thành chủ đề chính của giáo trình này.
Máy tính được xem xét như là một hệ thống các cấp có thứ bậc cho ta một cấu
trúc hoặc một cơ cấu tổ chức tốt nhằm tìm hiểu cách tổ chức các máy tính. Hơn
nữa, việc thiết kế một hệ thống máy tính như là một chuỗi các cấp giúp ta đảm
bảo được thành quả sẽ có câu trúc tơt.
1.4. Các mức máy tính
<i>Hình 1.5. Sáu cấp trên các máy tính hiện nay. Phương pháp hỗ trợ cho mỗi cấp chỉ ra</i>
<i>ở phía dưới cấp, cùng với tên của chương trình hỗ trợ trong dấu ngoặc đơn.</i>
vi xử lý và các máy vi tính, ngày càng có nhiều người tiếp xúc với cấp logic số.
Từ lý do này, ta dành trọn một chương để đề cập đến chúng.
Cấp trên kế tiếp là cấp 1, cấp ngôn ngữ máy thật sự. Trái ngược với cấp 0, ở đó
khơng có khái niệm một chương trình là một chuỗi các chỉ thị được thực thi, ở
cấp 1 có một chương trình gọi là vi chương trình ( microprogram ) làm nhiệm vụ
phiên dịch cẩc chỉ thị của cấp 2. Chúng ta gọi cấp 1 là cấp vi lập trình ( micro
programming level ). Mặc dù khơng có 2 máy tính có các cấp vi lập trình hồn
tồn như nhau, sự tương đồng của chúng đủ cho phép ta rút ra các đặc trưng cần
thiết và thảo luận về cấp này như thể đây là cấp được định nghĩa đầy đủ. Một vài
máy có nhiều hơn 20 chỉ thị ở câp này và hầu hết là các chỉ thị di chuyên dữ liệu
từ phần này đến phần khác của máy, hoặc thực hiện một sô' việc kiểm tra đơn
giản.
Mỗi một máy cấp 1 có một hoặc nhiều vi chương trình chạy trên chúng.
Mỗi một vi chương trình xác định hồn tồn một ngơn ngữ cấp 2 (hoặc một máy
ảo với ngôn ngữ máy là ngôn ngữ cấp 2 này ). Các máy cấp 2 cũng có nhiều
điểm chung, thậm chí các máy cấp 2 của các hãng khác nhau cũng có nhiều
điểm tương đồng hơn là khác biệt. Trong quyển sách này chúng ta gọi cấp này là
cấp máy qui ước ( conventional machine level 1 do khơng có một tên gọi tổng
qt.
Cũng cần lưu ý, một sơ' máy tính khơng có cấp vi lập trình.
Trên các máy này, các chỉ thị cửa cạp máy qui ước được thực thi trực tiếp
bởi các mạch điện tử ( cấp 0 ), khơng có trình phiên dịch của máy cấp 1, kết quả
cấp 1 ( không phải cấp 2 ) là cấp máy qui ước. Tuy nhiên ta vẫn gọi cấp 2 là cấp
máy qui ước bất chấp các ngoại lệ này.
Cấp thứ ba thường là cấp hỗn hợp ( hybrid level ). Hầu hết các chỉ thị trong
ngôn ngữ của cấp máy nàỵ cũng ở trong ngơn ngữ câp 2 ( khơng có lý do tại sao
một chỉ thị xuất hiện ở một cấp này lại không thể hiện diện ở các cấp khác ).
Thêm vào đó lại có một tập các chỉ thị mới, một tổ chức bộ nhớ khác, khả năng
chạy 2 hay nhiều chương trình song song và nhiều đặc trưng khác. Sự thay đổi
hiện hữu nhiều giữa các máy cấp 3 hơn là giữa các máy cấp 1 hay cấp 2.
Các tiện nghi mới thêm vào ở cấp 3 được thực thi bởi một trình phiên dịch
chạy trên cấp 2, gọi là hệ điều hành (operating system).
Nhiều chỉ thị cấp 3 khác, giống như các chỉ thị cấp 2 được thực thi trực
tiếp bởi vi chương trình, khơng phải bởi hệ điều hành. Nói cách khác, một số chỉ
thị cấp 3 được phiên dịch bởi hệ điều hành và một sô chỉ thị cấp 3 được phiên
dịch trực tiếp bởi vi chương trình, do vậy ta gọi là cấp hỗn hợp. Chúng ta gọi
cấp này là cấp máy hệ điều hành ( operating system machine level ).
Có một bước ngoặt cơ bản giữa cấp 3 và câp 4. Ba câp thâ’p nhất không
được thiết kế đẻ 'sư dụng trực tiếp bới những ngưịi lập trình thơng thường mà
được dự định chu yếu để chạy các trinh dịch và trình phiên dịch cần hỗ trợ cho
các cấp cao hơn. Các trình dịch và trình phiên dịch được viết bởi các lập trình
viên hệ thống ( system programmer ), những người chuyên thiết kê và hiện thực
các máy ảo mới. Câ'p 4 và các cấp trên nữa được dự định dành cho những người
lập trình ứng dụng ( applications programmer ) nhằm giải quyết một ván đề nào
đó.
Sự khác nhau khác nữa giữa các cap 1, 2 và 3 trên mặt này và các cấp 4, 5 và
cao hơn trên mặt khác là bản chất của ngôn ngữ được cung cấp. Các ngôn ngữ
máy ớ các cấp 1, 2 và 3 có dạng số.
Chương trình trong các ngơn ngữ này bao gồm những chuỗi dài các <i>số,</i>
chúng tốt với máy nhưng xấu đối với người. Bắt đầu từ cấp 4, ngôn ngữ chứa
các từ và các chữ viết tắt mang ý nghĩa đối với con người.
Cấp 4, cấp ngôn ngữ hợp dịch hay cấp hợp ngữ ( assembly language
level ) thật sự là dạng tượng trưng cho một trong các ngôn ngữ. Cấp này cung
cấp một phương pháp viết các chương trình cho các cấp 1, 2 và 3 dưới dạng
khơng gây khó chịu như chính các ngơn ngữ máy của chúng. Các chương trình
viết bằng hợp ngữ trước tiên được dịch sang ngôn ngữ của cấp 1, 2 hoặc 3, sau
đó được phiên dịch' bởi máy ảo hoặc thực tương ứng. Chương trình thực hiện
việc dịch gọi là trình dịch hợp ngữ ( assembler ).
Cấp 5 bao gồm các ngồn ngữ được thiết kế dành cho những người lập
trình ứng đụng nhằm giải quyêt các vấn đề nào đó. Các ngơn ngữ này gọi là các
ngón ngữ <i>cấp cao</i> ( high level language ).
Theo nghĩa đen có vài trăm ngôn ngữ khác nhau. Một vài ngôn ngữ nổi
tiếng là BASIC, c, COBOL, FORTRAN, LISP, Mođula 2 và PASCAL và các
ngơn ngữ lập trình hướng đối tượng ( object- oriented programming language )
sau này như C++, J++, v.v... .
Các chương trình được viết bằng các ngơn ngữ này thường được dịch
sang cấp 3 hoặc cấp 4 bằng các trình dịch gọi là trình biên dịch ( compiler ) dù
rằng đôi khi chúng cũng được phiên dịch.
Cấp 6 và các cấp trên nữa bao gồm những tập hợp các chương trình được
Tóm lại, vấn đề chính cần nhớ là các máy tính được thiết kế thành một
chuồi các cấp, mỗi một câ'p được xây dựng trên cấp trước đó. Mỗi cấp biểu thị
một quan điểm trừu tượng riêng, với các đôi tượng và các thao tác khác nhau.
Bằng cách thiết kế và phân tích máy tính theo cách này, chúng ta tạm thời bỏ
qua các chi tiết khơng thích hợp và do vậy làm cho một vấn đề phức tạp được
hiểu dễ dàng hơn.
Tập các loại dữ liệu, các thao tác và các đặc trứng của một cấp được gọi là
cấu trúc ( architecture ) của câ'p đó. Cấu trúc xử lý các khía cạnh nhìn thấy được
đốì với người sử dụng cấp đó. Các đặc trưng người lập trình thấy được như có
bao nhiêu bộ nhớ có giá trị là một phạn của cấu trúc. Các khía cạnh thực hiện
( implemen tation aspect ) như loại công nghệ chip nào được sử dụng để thực
hiện bộ nhớ không phải là một phần của cấu trúc. việc nghiên cứu cách thiết kế
các phần của một hệ thống máy tính mà người lập trình nhìn thấy được gọi là
cấu trúc máy tính.
Trong thực tế, cấu trúc máy tính ( computer architecture ) và tố chức máy
tính ( computer organisation ) về bản chất muốn nói đến cùng một sự việc.
2. Các thế hệ máy tính
2.1. Lịch sử máy tính
Sự phát triển của máy tính được mơ tả dựa trên sự tiến bộ của các công nghệ
chế tạo các linh kiện cơ bản của máy tính như: bộ xử lý, bộ nhớ, các ngoại
vi,.. .Ta có thể nói máy tính điện tử số trải qua bốn thế hệ liên tiếp. Việc chuyển
từ thế hệ trước sang thế hệ sau được đặc trưng bằng một sự thay đổi cơ bản về
cơng nghệ.
<i>Hình 1.6. Máy tính ENIAC</i>
ENIAC (Electronic Numerical Integrator and Computer) là máy tính điện tử
số đầu tiên do Giáo sư Mauchly và người học trò Eckert tại Đại học
Pennsylvania thiết kế vào năm 1943 và được hoàn thành vào năm 1946. Đây là
một máy tính khổng lồ với thể tích dài 20 mét, cao 2,8 mét và rộng vài mét.
ENIAC bao gồm: 18.000 đèn điện tử, 1.500 công tắc tự động, cân nặng 30 tấn,
và tiêu thụ 140KW giờ. Nó có 20 thanh ghi 10 bit (tính tốn trên số thập phân).
Có khả năng thực hiện 5.000 phép toán cộng trong một giây. Cơng việc lập trình
bằng tay bằng cách đấu nối các đầu cắm điện và dùng các ngắt điện.
Vào những năm đầu của thập niên 50, những máy tính thương mại đầu tiên
được đưa ra thị trường: 48 hệ máy UNIVAC I và 19 hệ máy IBM 701 đã được
bán ra.
Thế hệ thứ hai (1958-1964)
Công ty Bell đã phát minh ra <i>transistor</i> vào năm 1947 và do đó thế hệ thứ hai
của máy tính được đặc trưng bằng sự thay thế các đèn điện tử bằng các
transistor lưỡng cực. Tuy nhiên, đến cuối thập niên 50, máy tính thương mại
dùng transistor mới xuất hiện trên thị trường. Kích thước máy tính giảm, rẻ tiền
hơn, tiêu tốn năng lượng ít hơn. Vào thời điểm này, mạch in và bộ nhớ bằng
xuyến từ được dùng. Ngôn ngữ cấp cao xuất hiện (như FORTRAN năm 1956,
COBOL năm 1959, ALGOL năm 1960) và hệ điều hành kiểu tuần tự (Batch
Processing) được dùng. Trong hệ điều hành này, chương trình của người dùng
thứ nhất được chạy, xong đến chương trình của người dùng thứ hai và cứ thế
tiếp tục.
Thế hệ thứ ba (1965-1971)
Thế hệ thứ ba được đánh dấu bằng sự xuất hiện của các <i>mạch kết</i> (mạch tích
hợp - IC: Integrated Circuit). Các mạch kết độ tích hợp mật độ thấp (SSI: Small
Scale Integration) có thể chứa vài chục linh kiện và kết độ tích hợp mật độ trung
bình (MSI: Medium Scale Integration) chứa hàng trăm linh kiện trên mạch tích
hợp.
Mạch in nhiều lớp xuất hiện, bộ nhớ bán dẫn bắt đầu thay thế bộ nhớ bằng
xuyến từ. Máy tính đa chương trình và hệ điều hành chia thời gian được dùng.
Thế hệ thứ tư (1972-????)
Thế hệ thứ tư được đánh dấu bằng các <i>IC có mật độ tích hợp cao</i> (LSI: Large
Scale Integration) có thể chứa hàng ngàn linh kiện. Các IC mật độ tích hợp rất
cao (VLSI: Very Large Scale Integration) có thể chứa hơn 10 ngàn linh kiện
trên mạch. Hiện nay, các chip VLSI chứa hàng triệu linh kiện.
Các bộ nhớ bán dẫn, bộ nhớ cache, bộ nhớ ảo được dùng rộng rãi.
Các kỹ thuật cải tiến tốc độ xử lý của máy tính không ngừng được phát triển:
kỹ thuật ống dẫn, kỹ thuật vô hướng, xử lý song song mức độ cao,...
Việc chuyển từ thế hệ thứ tư sang thế hệ thứ 5 còn chưa rõ ràng. Người Nhật
đã và đang đi tiên phong trong các chương trình nghiên cứu để cho ra đời thế hệ
thứ 5 của máy tính, thế hệ của những máy tính thơng minh, dựa trên các ngơn
ngữ trí tuệ nhân tạo như LISP và PROLOG,... và những giao diện người - máy
thông minh. Đến thời điểm này, các nghiên cứu đã cho ra các sản phẩm bước
đầu và gần đây nhất (2004) là sự ra mắt sản phẩm người máy thông minh gần
giống với con người nhất: ASIMO <i>(Advanced Step Innovative Mobility: Bước</i>
<i>chân tiên tiến của đổi mới và chuyển động).</i> Với hàng trăm nghìn máy móc điện
Các tiến bộ liên tục về mật độ tích hợp trong VLSI đã cho phép thực hiện các
mạch vi xử lý ngày càng mạnh (8 bit, 16 bit, 32 bit và 64 bit với việc xuất hiện
các bộ xử lý RISC năm 1986 và các bộ xử lý siêu vô hướng năm 1990). Chính
các bộ xử lý này giúp thực hiện các máy tính song song với từ vài bộ xử lý đến
vài ngàn bộ xử lý. Điều này làm các chuyên gia về kiến trúc máy tính tiên đốn
thế hệ thứ 5 là thế hệ các máy tính xử lý song song.
2.2. Máy tính hiện tại và tương lai
cơ học lượng tử như thế nào? Đó là mối quan tâm của khơng chỉ người sử dụng
máy tính mà còn là mối quan tâm của các nhà nghiên cứu và hãng máy tính.
Ý tưởng máy tính lượng tử được đề xuất lần đầu tiên vào năm 1980 bởi nhà toán
học người Đức gốc Nga Yuri Manin bằng cách sử dụng các hiệu ứng chồng chập và
vướng víu lượng tử để thực hiện các tính tốn trên dữ liệu đưa vào. Khác với máy tính
kỹ thuật số dựa trên tranzitor địi hỏi cần phải mã hóa dữ liệu thành các chữ số nhị
phân, mỗi số được gán cho 1 trong 2 trạng thái nhất định là 0 hoặc 1, tính toán lượng
tử sử dụng các bit lượng tử ở trong trạng thái chồng chập để tính tốn. Điều này có
nghĩa là ở cùng một thời điểm, 1 bit lượng tử - đơn vị cơ bản của thơng tin trong điện
tốn, viết tắt là qubit - có thể có giá trị 0 và 1. Về mặt lý thuyết, một máy tính có nhiều
Hiện nay, nhiều phịng thí nghiệm trên khắp thế giới đã chế tạo ra các thiết bị có
khả năng thực hiện các phép tính lượng tử trên một số nhỏ qubit. Năm 2007, công ty
D-Wave tại Canada đã cơng bố chiếc máy tính lượng tử đầu tiên có khả năng thương
mại hóa mang tên D-Wave One. Tiếp theo, D-Wave cho ra đời phiên bản thứ 2 của
máy tính lượng tử mang tên D-Wave 2. Tháng 6/2011, Công ty D-Wave Systems,
Inc., đã bán chiếc máy tính lượng tử thương mại đầu tiên cho đối tác là cơng ty quốc
phịng Lockheed Martin (Bethesda, Maryland, Hoa Kỳ). Theo lý thuyết, D-Wave có
khả năng giải quyết được những vấn đề mà các siêu máy tính chưa làm được trên
nhiều lĩnh vực, như mật mã, cơng nghệ nano, trí tuệ nhân tạo...
và vẫn cần ít nhất là từ 15 đến 25 năm nữa để chứng minh khả năng ứng dụng thực tế
của D-Wave.
Vậy khi nào chúng ta có thể sử dụng máy tính lượng tử như với máy tính cá nhân
hiện nay? Theo Smelyanskiy, chúng ta sẽ khó có thể sở hữu một máy tính lượng tử
trong vài thập kỷ tới. Hơn nữa, chức năng của máy tính lượng tử là giải quyết các vấn
đề tính tốn lớn và rất phức tạp, chứ không giống như cách chúng ta sử dụng như máy
tính cá nhân truyền thống.
3. Thành quả của máy tính
Qui luật Moore về sự phát triển của máy tính
<i>Hình 1.7. Đánh giá thành quả của máy tính</i>
Hình 1.7 cho thấy diễn biến của thành quả tối đa của máy tính. Thành quả
Máy tính dùng thật nhiều bộ xử lý song song rất thích hợp khi phải làm
tính thật nhiều.
Sự tăng trưởng theo hàm số mũ của công nghệ chế tạo transistor MOS là nguồn
gốc của thành quả các máy tính.
Sự phát triển của cơng nghệ máy tính và đặc biệt là sự phát triển của bộ vi xử lý
của các máy vi tính làm cho các máy vi tính có tốc độ vượt qua tốc độ bộ xử lý
của các máy tính lớn hơn.
<i>Hình 1.8. Sự phát triển của bộ xử lý Intel dựa vào số lượng </i>
Transistor trong một mạch tích hợp theo quy luật Moore
-Kết quả của quy luật Moore là:
-Chi phí cho máy tính sẽ giảm.
-Giảm kích thước các linh kiện, máy tính sẽ giảm kích thước
-Hệ thống kết nối bên trong mạch ngắn: tăng độ tin cậy, tăng tốc độ
-Tiết kiệm năng lượng cung cấp, toả nhiệt thấp.
Một số khái niệm liên quan:
<i>Hình 1.9. Xung nhịp các bộ xử lý MOS</i>
Mật độ tích hợp là số linh kiện tích hợp trên một diện tích bề mặt tấm
silicon cho sẵn, cho biết số nhiệm vụ và mạch có thực hiện.
-Tần số xung nhịp bộ xử lý cho biết
-Tần số thực hiện các nhiệm vụ.
CÂU HỎI ÔN TẬP
1. Dựa vào tiêu chuẩn nào người ta phân chia máy tính thành các thế hệ?
2. Đặc trưng cơ bản của các máy tính thế hệ thứ nhất?
3. Đặc trưng cơ bản của các máy tính thế hệ thứ hai?
4. Đặc trưng cơ bản của các máy tính thế hệ thứ ba?
5. Đặc trưng cơ bản của các máy tính thế hệ thứ tư?
6. Việc phân loại máy tính dựa vào tiêu chuẩn nào?
7. Khái niệm thông tin trong máy tính được hiểu như thế nào?
8. Lượng thơng tin là gì?
<b>Bài tập</b>
Đổi số 42 sang các dạng cơ số sau
Thập lục phân (Hex)
Nhị phân (Bin)
Đổi 2 số sau sang dạng cơ số nhị phân và cộng 2 sốnhị phân đó lại: 189 và
36
<b>-</b> Số nhị phân 8 bit (11001100)2, số này tương ứng với số nguyên thập phân
<b>CHƯƠNG 2: KIẾN TRÚC PHẦN MỀM BỘ XỬ LÝ</b>
<b>Mã chương : 12.02</b>
<b>Giới thiệu :</b>
Giới thiệu tập lệnh của các kiến trúc máy tính, các kiểu định vị được dùng
trong kiến trúc, loại và chiều dài của toán hạng, tác vụ mà máy tính có thể thực
hiện, kiểu cấu trúc RISC.
<b>Mục tiêu</b>
- Trình bày được tập lệnh của các kiến trúc máy tính, các kiểu định vị được dùng
trong kiến trúc, loại và chiều dài của toán hạng, tác vụ mà máy tính có thể thực
hiện
- Trình bày được kiến trúc RISC (ReducedInstructionSetComputer)
- Rèn luyện tính cân thận, tư duy khoa học trong học tập.
<b>Nội dung chính:</b>
1. Thành phần cơ bản của một máy tính
phận trong CPU và kết nối với hệ thống bus ngồi. Hình 2.1. minh hoạ hai CPU
của hãng Intel là 8086 ra đời năm 1978 và Core 2 Duo ra đời năm 2006.
<i>Hình 2.1. CPU của hãng Intel: 8086 và Core 2 Duo</i>
Bộ nhớ trong: Bộ nhớ trong, còn gọi là bộ nhớ chính (Internal Memory hay
Main Memory) là kho chứa lệnh và dữ liệu của hệ thống và của người dùng
phục vụ CPU xử lý. Bộ nhớ trong thường là bộ nhớ bán dẫn, bao gồm hai loại:
(1) Bộ nhớ chỉ đọc (Read Only Memory – ROM) và (2) Bộ nhớ truy cập ngẫu
nhiên (Random Access Memory – RAM). ROM thường được sử dụng để lưu
lệnh và dữ liệu của hệ thống. Thông tin trong ROM được nạp từ khi sản xuất và
thường chỉ có thể đọc ra trong q trình sử dụng. Hơn nữa thông tin trong ROM
luôn tồn tại kể cả khi khơng có nguồn điện ni.
<i>Hình 2.2. Bộ nhớ ROM và RAM</i>
Các thiết bị vào ra: Các thiết bị vào ra (Input – Output devices), hay còn gọi
là các thiết bị ngoại vi (Peripheral devices) đảm nhiệm việc nhập dữ liệu vào,
điều khiển hệ thống và kết xuất dữ liệu ra. Có hai nhóm thiết bị ngoại vi: (1) Các
thiết bị vào (Input devices) và (2) Các thiết bị ra (Output devices). Các thiết bị
vào dùng để nhập dữ liệu vào và điều khiển hệ thống, gồm: bàn phím
(keyboard), chuột (mouse), ổ đĩa (Disk Drives), máy quét ảnh (Scanners),... Các
thiết bị ra dùng để xuất dữ liệu ra, gồm: màn hình (Screen), máy in (Printers), ổ
đĩa (Disk Drives), máy vẽ (Plotters),...
<i>Hình 2.3. Các thiết bị ngoại vi cơ bản(Bàn phím, chuột, màn hình)</i>
hiệu dữ liệu theo hai chiều đi và đến CPU; Bus điều khiển truyền tín hiệu điều
khiển từ CPU đến các thành phần khác, đồng thời truyền tín hiệu trạng thái của
các thành phần khác đến CPU.
2. Định nghĩa kiến trúc máy tính
Kiến trúc máy tính bao gồm ba phần: Kiến trúc phần mềm, tổ chức của máy
<i>tính và lắp đặt phần cứng.</i>
Kiến trúc phần mềm của máy tính chủ yếu là kiến trúc phần mềm của bộ xử lý,
bao gồm: tập lệnh, dạng các lệnh và các kiểu định vị.
Trong đó, tập lệnh là tập hợp các lệnh mã máy (mã nhị phân) hoàn chỉnh có
thể hiểu và được xử lý bới bộ xử lý trung tâm, thơng thường các lệnh trong tập
lệnh được trình bày dưới dạng hợp ngữ. Mỗi lệnh chứa thông tin yêu cầu bộ xử
lý thực hiện, bao gồm: mã tác vụ, địa chỉ toán hạng nguồn, địa chỉ toán hạng kết
quả, lệnh kế tiếp (thơng thường thì thơng tin này ẩn).
Kiểu định vị chỉ ra cách thức thâm nhập toán hạng.
Kiến trúc phần mềm là phần mà các lập trình viên hệ thống phải nắm vững
để việc lập trình hiểu quả, ít sai sót.
Phần tổ chức của máy tính liên quan đến cấu trúc bên trong của bộ xử lý, cấu
trúc các bus, các cấp bộ nhớ và các mặt kỹ thuật khác của máy tính. Phần này
sẽ được nói đến ở các chương sau.
Lắp đặt phần cứng của máy tính ám chỉ việc lắp ráp một máy tính dùng các
linh kiện điện tử và các bộ phận phần cứng cần thiết. Chúng ta khơng nói đến
phần này trong giáo trình.
Ta nên lưu ý rằng một vài máy tính có cùng kiến trúc phần mềm nhưng phần
tổ chức là khác nhau (VAX- 11/780 và VAX 8600). Các máy VAX- 11/780 và
VAX- 11/785 có cùng kiến trúc phần mềm và phần tổ chức gần giống nhau. Tuy
nhiên việc lắp đặt phần cứng các máy này là khác nhau. Máy VAX- 11/785 đã
dùng các mạch kết hiện đại để cải tiến tần số xung nhịp và đã thay đổi một ít tổ
chức của bộ nhớ trong.
2.1. Kiến trúc phần mềm.
lý, bao gồm: tập lệnh, dạng các lệnh và các kiểu định vị.
Trong đó, tập lệnh là tập hợp các lệnh mã máy (mã nhị phân) hồn chỉnh có
thể hiểu và được xử lý bới bộ xử lý trung tâm, thông thường các lệnh trong tập
lệnh được trình bày dưới dạng hợp ngữ. Mỗi lệnh chứa thông tin yêu cầu bộ xử
lý thực hiện, bao gồm: mã tác vụ, địa chỉ toán hạng nguồn, địa chỉ tốn hạng
kết quả, lệnh kế tiếp (thơng thường thì thơng tin này ẩn).
Kiểu định vị chỉ ra cách thức thâm nhập toán hạng.
Kiến trúc phần mềm là phần mà các lập trình viên hệ thống phải nắm vững
để việc lập trình hiểu quả, ít sai sót.
Như đã mơ tả, một lệnh mã máy bao gồm một mã tác vụ và các tốn hạng.
Ví dụ: lệnh mã máy 01101001010101010000001101100101 Việc chọn số toán
hạng cho một lệnh mã máy là một vấn đề then chốt vì phải có một sự cân đối
giữa tốc độ tính tốn và số các mạch tính tốn phải dùng. Tuỳ theo tần số sử
dụng các phép như trên mà các nhà thiết kế máy tính quyết định số lượng các
mạch chức năng cần thiết cho việc tính tốn. Thơng thường số tốn hạng thay
đổi từ 0 tới 3.
Ví dụ: lệnh Y := A + B + C + D có thể được hiện bằng một lệnh mã máy nếu ta
có 3 mạch cộng, hoặc được thực hiện bằng 3 lệnh mã máy nếu chúng ta chỉ có
một mạch cộng, nếu việc tính tốn trên xảy ra ít, người ta chỉ cần thiết kế một
mạch cộng thay vì phải tốn chi phí lắp đặt 3 mạch cộng. Tuy nhiên, với một
mạch cộng thì thời gian tính tốn của hệ thống sẽ chậm hơn với hệ thống có ba
mạch cộng.
Vị trí của tốn hạng cũng được xem xét. Bảng II.1 chọn một vài nhà sản
xuất máy tính và 3 kiểu cơ bản của vị trí các tốn hạng đối với những lệnh tính
tốn trong ALU là: ở ngăn xếp, trên thanh ghi tích luỹ, và trên các thanh ghi đa
dụng. Những kiến trúc phần mềm này được gọi là kiến trúc ngăn xếp, kiến trúc
thanh ghi tích luỹ và kiến trúc thanh ghi đa dụng.
<i>Bảng 2.1. Ví dụ về cách chọn lựa vị trí các tốn hạng</i>
Vị trí các tốn
hạng Thí dụ
Tốn hạng cho
lệnh tính tốn
trong ALU.
Vị trí đặt kết
quả.
Cách thức thâm
nhập vào toán
Ngăn xếp B 5500 HP<sub>3000/70</sub> 0 Ngăn xếp Lệnh Push, Pop
Thanh ghi tích
luỹ PDP 8 1
Motorola 6809
Thanh ghi tích
luỹ
Lệnh nạp vào
hoặc lấy ra từ
thanh ghi tích
luỹ (load, store)
Thanh ghi đa
dụng
IBM 360
DEC, VAX 2 hoặc 3 Thanh ghi hoặc
bộ nhớ
Lệnh nạp vào
hoặc lấy ra từ
thanh ghi hoặc
bộ nhớ
Một vài nhà sản xuất máy tính tuân thủ chặt chẽ các kiểu chọn vị trí toán hạng
nêu trên, nhưng phần nhiều các bộ xử lý dùng kiểu hỗn tạp. Ví dụ, mạch xử lý
8086 của Intel dùng cùng một lúc kiểu "thanh ghi đa dụng" và kiểu "thanh ghi
tích luỹ".
Ví dụ minh hoạ chuỗi lệnh phải dùng để thực hiện phép tính C := A + B trong 3
kiểu kiến trúc phần mềm.
<i>Bảng 2.2. Chuỗi lệnh dùng thực hiện phép tính C := A + B (giả sử</i>
<i>A, B, C đều nằm trong bộ nhớ trong)</i>
Kiến trúc ngăn xếp Kiến trúc thanh ghi tích luỹ Kiến trúc thanh ghi đa dụng
Push A Load A Load R1, A
Push B <i>ADD B</i> <i>ADD R1, B</i>
<i>ADD</i> Store C Store R1, C
Pop C
Hiện tại các nhà sản xuất máy tính có khuynh hướng dùng kiến trúc phần
mềm thanh ghi đa dụng vì việc thâm nhập các thanh ghi đa dụng nhanh hơn
thâm nhập bộ nhớ trong, và vì các chương trình dịch dùng các thanh ghi đa dụng
có hiệu quả hơn.
<i>Bảng 2.3. Điểm lợi và bất lợi của 3 kiểu kiến trúc phần mềm</i>
<b>Loại kiến trúc Bất lợi</b> <b>Lợi điểm</b> <b>Bất lợi</b>
<i><b>Ngăn xếp </b>(Stack)</i>
- Lệnh ngắn
- Ít mã máy
- Làm tối thiểu trạng thái
bên trong của máy tính
- Dễ dàng tạo ra một bộ
biên dịch đơn giản cho
kiến trúc ngăn xếp
- Thâm nhập ngăn xếp
không ngẫu nhiên.
- Mã không hiệu quả
- Khó dùng trong xử lý
song song và ống dẫn
- Khó tạo ra một bộ biên
dịch tối ưu
<i><b>Thanh ghi tích luỹ</b></i>
<i>(Accumulator Register)</i>
- Lệnh ngắn
- Làm tối thiểu trạng thái
bên trong của máy tính
- Lưu giữ ở thanh ghi tích
luỹ là tạm thời.
(yêu cầu ít mạch chức
năng).
- Thiết kế dễ dàng
luỹ
- Khó dùng trong xử lý
song song và ống dẫn
<i><b>Thanh ghi đa dụng</b></i>
<i>(General Register)</i>
- Tốc độ xử lý nhanh, định
vị đơn giản.
- Ít thâm nhập bộ nhớ.
- Kiểu rất tổng quát để tạo
các mã hữu hiệu
- Lệnh dài
- Số lượng thanh ghi bị giới
hạn
2.2. Tổ chức máy tính
Cấu trúc máy tính lại bao gồm các thuộc tính kỹ thuật mà người lập trình
khơng nhận biết được như các tín hiệu điều khiển, giao diện giữa máy tính và
thiết bị ngoại vi, cơng nghệ xây dựng bộ nhớ, v.v…
Chẳng hạn việc quyết định máy tính có cần một lệnh cơ bản để thực hiện
phép nhân hay khơng là vấn đề về kiến trúc. Cịn thể hiện lệnh nhân bằng các
đơn vị vật lý cụ thể nào (chẳng hạn, một đơn vị thuộc phần cứng đặc biệt, hay
thực hiện lặp nhiều phép cộng) lại là vấn đề về cấu trúc.
Để làm ví dụ minh họa sự khác biệt đó ta có thể xem các máy tính ở Trung
tâm nghiên cứu nào đó. Các máy tính này có thể có kiến trúc rất giống nhau theo
quan điểm của người lập trình. Chúng có cùng số thanh ghi (tức là thiết bị lưu
trữ tạm thời), có cùng một tập lệnh cơ bản và dạng các toán hạng được nạp vào
bộ nhớ giống nhau. Tuy nhiên các hệ thống này khác nhau về mặt cấu trúc: số
bộ vi xử lý khác nhau, kích thước bộ nhớ của chúng cũng khác hẳn nhau, cách
thức dữ liệu được truyền từ bộ nhớ đến bộ vi xử lý cũng không giống nhau.
Trong lĩnh vực máy PC, người ta thường không phân biệt rõ ràng giữa kiến
trúc và cấu trúc vì sự khác biệt giữa hai khái niệm này đã rút ngắn đáng kể. Sự
phát triển của công nghệ không chỉ tác động lên cấu trúc mà còn tạo điều kiện
phát triển các kiến trúc mạnh hơn và nhiều tính năng hơn; và do đó tác động qua
lại giữa kiến trúc và cấu trúc thường xuyên hơn.
thức về kiến trúc, đôi khi cần những hiểu biết về cấu trúc, nhưng thường rất ít
khi cần đến những hiểu biết về kỹ thuật máy tính.
Hiểu kiến trúc máy tính có thể giúp người lập trình nhận biết khi nào chương
trình của mình tạo ra chạy chưa đạt hiệu suất tối đa của hệ thống, hiểu được các
kỹ năng làm tăng hiệu suất chương trình, v.v.
2.3. Lắp đặt phần cứng
2.3.1. Chuẩn bị các dụng cụ cần thiết
Đây có thể coi là một trong những bước quan trọng nhất của cả quá trình. Nó
ảnh hưởng trực tiếp đề việc bạn có thể hồn thành được công việc một cách trôi
chảy hay không. Đầu tiên, khơng thể thiếu chính là một bộ tuốc nơ vít với nhiều
đầu có kích thước và số cạnh khác nhau. Bạn có thể sẽ cần thêm một vịng tay
chống tĩnh điện (ảnh minh họa bên dưới). Những chiếc kẹp nhỏ bằng kim loại
<i>Hình 2.3. Vịng tĩnh điệm</i>
2.3.2. Bước đầu tiên: Kiểm tra cây máy tính của bạn
Trước tiên, hãy xem xét thật kỹ cây máy tính của bạn. Để làm gì? Để bạn nắm
được bố cục của khoang cây máy tính, xem đâu là khoang chính chứa bo mạch
chủ, đâu là nơi đặt ổ đĩa cứng (HDD) và ổ SSD, hay khe hở ở mặt sau cho cổng
của bo mạch chủ và khoang mở rộng cho card đồ họa nằm chính xác ở chỗ
nào…. Tóm lại bước này cũng rất quan trọng, giúp bạn có được một cái nhìn
tổng qt và sau đó dần dần hình thành các ý tưởng.
Bắt tay vào công việc thôi. Bây giờ, chúng ta sẽ lắp CPU và RAM vào bo mạch
chủ trước khi cài đặt bo mạch chủ vào cây, đơn giản là vì làm như vậy sẽ dễ hơn
là việc lắp đặt CPU, RAM sau khi bo mạch chủ đã được cố định đúng chỗ. Lấy
bo mạch chủ của bạn ra khỏi hộp, đặt nó lên trên một mặt phẳng nhẵn, không
cập kênh, và đảm bảo mặt phẳng đặt bo mạch chủ hồn tồn khơng có tích điện.
2.3.4. Bước 3: Cài đặt RAM
Tiếp theo, đã đến lúc cài đặt các mơ-đun bộ nhớ. Nhìn chung, bạn nên
thiết lập RAM vào bo mạch chủ trước khi cài đặt bộ làm mát cho CPU, vì một
số thiết bị làm mát sẽ đè lên trên các cạnh của RAM, khiến cho chúng ta không
thể lắp được RAM vào.
2.3.5. Bước 4: Lắp đặt bo mạch chủ
Đặt cây máy tính của bạn trên bàn sao cho thật chắc chắn, không cập
kênh, với bảng điều khiển phía trước hướng về bên phải của bạn. Tháo miếng
2.3.6. Bước 5: Lắp đặt quạt làm mát (nếu có)
Tiếp theo, hãy cài đặt quạt làm mát cho bo mạch chủ. (Nếu chúng đã được
cài đặt sẵn trong cây CPU của bạn, bạn có thể bỏ qua bước này). Nhìn chung,
bạn cũng nên đầu tư lắp đặt quạt tản nhiệt rời, sẽ rất có lợi về lâu về dài. Thơng
thường, bạn sẽ chỉ cần xốy vít định vị quạt vào khung của cây CPU. Tuy nhiên,
trên một số cây CPU chuyên dành cho việc chơi game, kết cấu có thể hơi khác
một chút. Trong trường hợp này, hãy tham khảo sách hướng dẫn sử dụng cây
CPU của bạn để có thể có thêm thơng tin.
2.3.7. Bước 6: Lắp đặt hệ thống làm mát cho CPU
2.3.8. Bước 7: Lắp đặt ổ đĩa lưu trữ và ổ đĩa quang.
Cho dù bạn sử dụng bất kỳ loại ổ cứng lưu trữ nào thì việc cài đặt chúng
đều khá là đơn giản. Cây máy tính của bạn sẽ có một trong hai vị trí gắn cố định
hoặc dạng trượt (caddies) cho phép bạn trượt ổ đĩa vào một khe cắm để tiện cho
việc tháo bỏ và thay thế. Tương tự là vị trí của ổ đĩa quang. Nếu bạn khơng thấy
các vị trí này, hãy kiểm tra lại hướng dẫn sử dụng của cây máy tính.
2.3.9. Bước 8: Lắp đặt card đồ họa (và các phụ kiện PCI-e khác)
Nếu bạn có nhu cầu sử dụng card đồ họa rời để chơi trị chơi, giờ chính là
lúc cài đặt thiết bị này. Các card đồ họa thường sẽ sử dụng khe PCI-Express
(viết tắt PCI-e, PCIe hoặc đôi khi chỉ là PCI), mở ra bên ngoài vỏ máy để sử
dụng như một cổng kết nối mở rộng và hầu như ln được tìm thấy bên dưới ổ
2.3.10. Bước 9: Lắp đặt bộ cấp nguồn
Cố lên, cơng việc của chúng ta sắp hồn thành rồi! Bây giờ bạn phải lắp
bộ nguồn vào khoang hoặc thanh giá đỡ tùy theo từng loại cây mà bạn sử dụng.
Vị trí của cáp nguồn ba chiều (cáp cắm vào ổ điện trên tường) phải được luồn ra
mặt sau của cây và có thể dễ dàng nhìn và chạm vào từ bên ngồi.
2.3.11. Các cơng đoạn cuối cùng
Cơng việc của chúng ta đến đây là sắp hoàn tất. Trước khi bạn đóng nắp
cây máy tính, hãy kiểm tra thật kỹ để đảm bảo khơng có cáp nguồn hoặc cáp dữ
liệu nào được đặt quá gần với quạt làm mát và mọi thứ đều được cố định chắc
chắn.
Cắm cáp nguồn vào nguồn điện, sau đó là màn hình, bàn phím và chuột. Nhấn
cơng tắc nguồn. Nếu bạn có thể nhìn thấy ánh sáng từ đèn báo nguồn trên vỏ
máy, và nghe thấy tiếng quạt gió hoạt động, có nghĩa là hệ thống của bạn đã sẵn
sàng để được cài đặt hệ điều hành và đi vào sử dụng.
Mục tiêu của phần này là dùng các ví dụ trích từ các kiến trúc phần mềm
được dùng nhiều nhất, để cho thấy các kỹ thuật ở mức ngôn ngữ máy dùng để
thi hành các cấu trúc trong các ngôn ngữ cấp cao.
Để minh hoạ bằng thí dụ, ta dùng cú pháp lệnh trong hợp ngữ sau đây :
Từ gợi nhớ mã lệnh, thanh ghi đích, thanh ghi nguồn 1, thanh ghi nguồn 2.
Từ gợi nhớ mã lệnh mô tả ngắn gọn tác vụ phải thi hành trên các thanh ghi
nguồn, kết quả được lưu giữ trong thanh ghi đích.
Mỗi lệnh của ngôn ngữ cấp cao được xây dựng bằng một lệnh mã máy hoặc
một chuỗi nhiều lệnh mã máy. Lệnh nhảy (GOTO) được thực hiện bằng các lệnh
hợp ngữ về nhảy (JUMP) hoặc lệnh hợp ngữ về vòng. Chúng ta phân biệt lệnh
nhảy làm cho bộ đếm chương trình được nạp vào địa chỉ tuyệt đối nơi phải nhảy
đến (PC <- địa chỉ tuyệt đối nơi phải nhảy tới), với lệnh vịng theo đó ta chỉ cần
cộng thêm một độ dời vào bộ đếm chương trình (PC <- PC + độ dời). Ta lưu ý là
trong trường hợp sau, PC chứa địa chỉ tương đối so với địa chỉ của lệnh sau lệnh
vịng.
3.1. Các lệnh về bộ nhớ, tính toán…
Bảng 2.4 cho các loại tác vụ mà một máy tính có thể thực hiện. Trên tất cả
máy tính ta đều thấy 3 loại đầu tiên (tính tốn số học và luận lý, di chuyển số
liệu, chuyển điều khiển). Tuỳ theo kiến trúc của mỗi máy tính, người ta có thể
thấy 0 hoặc vài loại tác vụ trong số 5 tác vụ cịn lại (hệ thống, tính tốn với số có
dấu chấm động, tính tốn với số thập phân, tính toán trên chuỗi ký tự).
<i>Bảng 2.4. Các tác vụ mà lệnh có thể thực hiện</i>
<b>Loại tác vụ</b> <b>Thí dụ</b>
<i><b>Tính toán số học và</b></i>
<i><b>luận lý</b></i>
Phép tính số nguyên và phép tính luận lý: cộng, trừ,
AND, OR
<i><b>Di chuyển số liệu </b></i> Nạp số liệu, lưu giữ số liệu
<i><b>Chuyển điều khiển</b></i> Lệnh nhảy, lệnh vịng lặp, gọi chương trình con và
<i><b>Hệ thống</b></i> Gọi hệ điều hành, quản lý bộ nhớ ảo
<i><b>Tính số có dấu chấm</b></i>
<i><b>độ</b><b>ng</b></i>
Các phép tính trên số có dấu chấm động: cộng, nhân
<i><b>Tính số thập phân</b></i> Các phép tính trên số thập phân: cộng, nhân, đổi từ
<i><b>Tính tốn trên chuỗi</b></i>
<i><b>ký tự </b></i> Chuyển, so sánh, tìm kiếm chuỗi ký tự
<i><b>Đồ</b><b> hoạ và </b><b>đ</b><b>a ph</b><b>ươ</b><b>ng</b></i>
<i><b>tiện</b></i> Nén và giải nén dữ liệu hình ảnh đồ hoạ (3D) và dữliệu đa phương tiện (hình ảnh động và âm thanh)
Kiểu của toán hạng thường được đưa vào trong mã tác vụ của lệnh. Có bốn
kiểu tốn hạng được dùng trong các hệ thống:
- Kiểu địa chỉ.
- Kiểu dạng số: số nguyên, dấu chấm động,...
- Kiểu dạng chuỗi ký tự: ASCII, EBIDEC,...
- Kiểu dữ liệu logic: các bit, cờ,...
Tuy nhiên một số ít máy tính dùng các nhãn để xác định kiểu tốn hạng.
Thơng thường loại của tốn hạng xác định ln chiều dài của nó. Tốn hạng
thường có chiều dài là byte (8 bit), nữa từ máy tính (16 bit), từ máy tính (32 bit),
3.2. Các lệnh có điều kiện
Lệnh có điều kiện có dạng :
Nếu <điều kiện> thì <chuỗi lệnh 1> nếu khơng <chuỗi lệnh 2>
(IF <condition> THEN <instructions1> ELSE <instructions2>)
Lệnh này buộc phải ghi nhớ điều kiện và nhảy vòng nếu điều kiện được thoả.
3.2.1. Ghi nhớ điều kiện .
<i>Hình 2.4. Bit trạng thái mà ALU tạo ra</i>
Có hai kỹ thuật cơ bản để ghi nhớ các bit trạng thái
<i><b>Cách thứ nhất,</b></i> ghi các trạng thái trong một thanh ghi đa dụng.
<i>Ví dụ lệnh </i>CMP Rk, Ri, Rj
Lệnh trên sẽ làm phép tính trừ Ri - Rj mà khơng ghi kết quả phép trừ,
mà lại ghi các bit trạng thái vào thanh ghi Rk. Thanh ghi này được dùng cho
một lệnh nhảy có điều kiện. Điểm lợi của kỹ thuật này là giúp lưu trữ nhiều
trạng thái sau nhiều phép tính để dùng về sau. Điểm bất lợi là phải dùng một
thanh ghi đa dụng để ghi lại trạng thái sau mỗi phép tính mà số thanh ghi này
lại bị giới hạn ở 32 trong các bộ xử lý hiện đại.
3.2.2. Nhảy vòng
Các lệnh nhảy hoặc nhảy vịng có điều kiện, chỉ thực hiện lệnh nhảy khi
điều kiện được thoả. Trong trường hợp ngược lại, việc thực hiện chương trình
Chúng ta xem một ví dụ thực hiện lệnh nhảy có điều kiện.
Giả sử trạng thái sau khi bộ xử lý thi hành một tác vụ, được lưu trữ trong
thanh ghi, và bộ xử lý thi hành các lệnh sau :
1. <i>CMP R4, R1, R2</i> : So sánh R1 và R2 bằng cách trừ R1 cho R2 và lưu giữ
trạng thái trong R4
2. <i>BGT R4, +2</i> : Nhảy bỏ 2 lệnh nếu R1 > R2
3. <i>ADD R3, R0, R2</i> : R0 có giá trị 0. Chuyển nội dung của R2 vào R3
4. <i>BRA +1</i> : nhảy bỏ 1 lệnh
5. <i>ADD R3, R0, R1</i> : chuyển nội dung R1 vào R3
6. Lệnh kế
Nếu R1 > R2 thì chuỗi lệnh được thi hành là 1, 2, 5, 6 được thi hành, nếu không
thì chuỗi lệnh 1, 2, 3, 4, 6 được thi hành.
Chuỗi các lệnh trên , trong đó có 2 lệnh nhảy, thực hiện công việc sau đây :
Nếu R1 > R2 thì R3 = R1 nếu khơng R3 = R2
Các lệnh nhảy làm tốc độ thi hành lệnh chậm lại, trong các CPU hiện đại
dùng kỹ thuật ống dẫn. Trong một vài bộ xử lý người ta dùng lệnh di chuyển có
điều kiện để tránh dùng lệnh nhảy trong một vài trường hợp. Thí dụ trên đây có
thể được viết lại:
<i>CMP R4, R1, R2</i> : So sánh R1 và R2 và để các bit trạng thái trong R4.
<i>ADD R3, R0, R2</i> : Di chuyển R2 vào R3
<i>MGTR4, R3, R1:</i> (MGT : Move if greater than). Nếu R1 > R2 thì di
chuyển R1 vào R3.
3.3. Các lệnh chuyển hướng
một mơ hình lập trình, và tất cả hiện thực đó tập lệnh có thể chạy các file thực
thi nhị phân. Các cách khác nhau để thực hiện một lệnh đặt cho cân bằng khác
nhau giữa chi phí, hiệu suất, điện năng tiêu thụ, kích thước, vv
Khi thiết kế các vi cấu trúc của một bộ xử lý, các kỹ sư sử dụng các khối
"cứng có dây" mạch điện tử (thường được thiết kế riêng) như hổ, ghép kênh,
đếm, thanh ghi, ALU<b>…. Một số loại ngơn ngữ chuyển đăng ký sau đó thường</b>
được sử dụng để mơ tả giải mã và trình tự của mỗi chỉ dẫn của một ISA sử dụng
vi kiến trúc vật lý này. Có hai cách cơ bản để xây dựng một bộ điều khiển để
thực hiện các mô tả này (mặc dù rất nhiều mẫu thiết kế sử dụng những cách giữa
hoặc thỏa hiệp):
Một số mẫu thiết kế máy tính "buộc cố định" hoàn thành việc giải mã tập lệnh
và trình tự (giống như phần cịn lại của vi kiến trúc).
Thiết kế khác sử dụng vi thói quen hoặc bảng (hoặc cả hai) để làm điều này,
điển hình như trên-chip ROM hoặc PLAs hoặc cả hai (mặc dù RAMS và riêng
biệt ROM đã được sử dụng trong lịch sử).
Một số mẫu thiết kế sử dụng một sự kết hợp của thiết kế mạch điện điện và vi
cho các đơn vị điều khiển.
Một số thiết kế CPU biên soạn các hướng dẫn thiết lập để một khả năng
ghi nhớ RAM hoặc đèn flash bên trong CPU (như Rekursiv bộxử lý và
các Imsys Cjip ), hoặc một FPGA(máy tính cấu hình lại ). The Western
Digital MCP-1600 là một ví dụ cũ, bằng cách sử dụng một chuyên dụng, ROM
riêng cho vi.
An ISA cũng có thể được mơ phỏng trong phần mềm của một thông
dịch viên. Đương nhiên, do các nguyên cần giải thích, đây là chậm hơn so với
trực tiếp chương trình đang chạy trên phần cứng mô phỏng, trừ khi các phần
cứng đang chạy giả lập là một đơn đặt hàng của các cường độ nhanh hơn. Hơm
nay, nó là thực tế phổ biến cho các nhà cung cấp của ISA mới hoặc
microarchitectures để giả lập phần mềm có sẵn cho các nhà phát triển phần mềm
trước khi thực hiện phần cứng đã sẵn sàng.
Thường thì các chi tiết của việc thực hiện có một ảnh hưởng mạnh mẽ trên
các hướng dẫn cụ thể được lựa chọn cho các tập lệnh. Ví dụ, nhiều cài đặt
của đường ống dẫn chỉ cho phép một bộ nhớ tải đơn hoặc bộ nhớ lưu trữ theo
hướng dẫn, dẫn đến một kiến trúc load-store (RISC). Ví dụ khác, một số cách
đầu thực hiện các đường ống dẫn dẫn đến một khe chậm trễ.
4. Thủ tục
Các thủ tục được gọi từ bất cứ nơi nào của chương trình nhờ lệnh gọi thủ tục
CALL. Để khi chấm dứt việc thi hành thủ tục thì chương trình gọi được tiếp tục
bình thường, ta cần lưu giữ địa chỉ trở về tức địa chỉ của lệnh sau lệnh gọi thủ
tục CALL. Khi chấm dứt thi hành thủ tục, lệnh trở về RETURN nạp địa chỉ trở
về vào PC.
Trong các kiến trúc CISC (VAX 11, 80x86, 680x0), địa chỉ trở về được giữ ở
Lệnh gọi thủ tục là một lệnh loại JMPL Ri, lệnh này làm các tác vụ :
R31 := PC ; để địa chỉ trở về trong R31
PC := Ri ; nhảy tới địa chỉ của thủ tục nằm trong thanh ghi Ri
Lệnh trở về khi chấm dứt thủ tục là JMP R31, vì thanh ghi R31 chứa địa chỉ
trở về.
Việc dùng một thanh ghi đặc biệt để lưu trữ địa chỉ trở về là một giải pháp chỉ
áp dụng cho các thủ tục cuối cùng, nghĩa là cho thủ tục không gọi thủ tục nào
cả. Để có thể cho các thủ tục có thể gọi một thủ tục khác, ta có hai giải pháp:
<i>Giải pháp 1:</i> có nhiều thanh ghi để lưu trữ địa chỉ trở về
<i>Giải pháp 2:</i> lưu giữ địa chỉ trở về ở ngăn xếp.
Việc gọi thủ tục có thể được thực hiện bằng chuỗi lệnh sau đây :
ADDI R30, R30,4 ; R30 là con trỏ ngăn xếp
STORE R31, (R30) ; lưu giữ địa chỉ trở về
JMPL Ri ; gọi thủ tục
Người ta dùng chuỗi lệnh sau đây để trở về chương trình gọi :
SUBI R30, R30,4 ; cập nhật con trỏ ngăn xếp
<i>Hình 2.5. Gọi thủ tục và trở về khi thực hiện xong thủ tục</i>
Việc truyền tham số từ thủ tục gọi đến thủ tục bị gọi có thể thực hiện bằng
cách dùng các thanh ghi của bộ xử lý hoặc dùng ngăn xếp. Nếu số tham số
5. Toán hạng
Kiểu của toán hạng thường được đưa vào trong mã tác vụ của lệnh. Có bốn
kiểu tốn hạng được dùng trong các hệ thống:
- Kiểu địa chỉ.
- Kiểu dạng số: số nguyên, dấu chấm động,...
- Kiểu dạng chuỗi ký tự: ASCII, EBIDEC,...
- Kiểu dữ liệu logic: các bit, cờ,...
CÂU HỎI ÔN TẬP CHƯƠNG 2
<i>1.</i> Trình bày các thành phần cơ bản của một máy tính
<i>2.</i> Định nghĩa kiến trúc máy tính.
<i>3.</i> Trình bày kiểu thi hành một lệnh.
<i>4.</i> Trình bày kiểu kiến trúc thanh ghi đa dụng
<i>5.</i> Trình bày tập lệnh.
<i>6.</i> Trình bày tốn hạng
<b>CHƯƠNG 3: TỔ CHỨC BỘ XỬ LÝ</b>
<b>Mã chương : 12.03</b>
<b>Giới thiệu :</b>
Giới thiệu về đường đi và cách tổ chức dữ liệu trong máy tính, nguyên tắc
<b>Mục tiêu:</b>
- Trình bày được nhiệm vụ và cách tổ chức đường đi của dữ liệu trong bộ xử
lý
- Trình bày được nguyên tắc vận hành của bộ điều khiển mạch điện tử
- Trình bày được nguyên tắc vận hành của bộ điều khiển vi chương trình
- Trình bày được nhiệm vụ của ngắt
- Trình bày được tiến trình thi hành lệnh mã máy
- Trình bày được một số kỹ thuật xử lý thông tin: ống dẫn, siêu ống dẫn, siêu vô
hướng.
- Rèn luyện kỹ năng tổ chức cơng việc
<b>Nội dung chính:</b>
1. Đường đi dữ liệu
Phần đường đi dữ liệu gồm có bộ phận làm tính và luận lý (ALU: Arithmetic
and Logic Unit), các mạch dịch, các thanh ghi và các đường nối kết các bộ phận
trên. Phần này chứa hầu hết các trạng thái của bộ xử lý. Ngoài các thanh ghi
tổng quát, phần đường đi dữ liệu còn chứa thanh ghi đếm chương trình (PC:
Program Counter), thanh ghi trạng thái (SR: Status Register), thanh ghi đệm
TEMP (Temporary), các thanh ghi địa chỉ bộ nhớ (MAR: Memory Address
Register), thanh ghi số liệu bộ nhớ (MBR: Memory Buffer Register), bộ đa hợp
(MUX: Multiplexor), đây là điểm cuối của các kênh dữ liệu - CPU và bộ nhớ,
với nhiệm vụ lập thời biểu truy cập bộ nhớ từ CPU và các kênh dữ liệu, hệ thống
ra các thanh ghi tổng quát có các mạch chốt A, B, C. Thông thường, số lượng
các thanh ghi tổng quát là 32.
Phần đường đi của dữ liệu chiếm phân nửa diện tích của bộ xử lý nhưng là
phần dễ thiết kế và cài đặt trong bộ xử lý.
2. Bộ điều khiển
Bộ điều khiển tạo các tín hiệu điều khiển di chuyển số liệu (tín hiệu di chuyển
số liệu từ các thanh ghi đến bus hoặc tín hiệu viết vào các thanh ghi), điều khiển
các tác vụ mà các bộ phận chức năng phải làm (điều khiển ALU, điều khiển đọc
và viết vào bộ nhớ trong...). Bộ điều khiển cũng tạo các tín hiệu giúp các lệnh
được thực hiện một cách tuần tự.
Việc cài đặt bộ điều khiển có thể dùng một trong hai cách sau: dùng mạch
điện tử hoặc dùng vi chương trình (microprogram).
2.1. Bộ điều khiển điện tử
<i>Hình 3.2. Nguyên tắc vận hành của bộ điều khiển dùng mạch điện</i>
Hình 3.2 cho thấy nguyên tắc của một bộ điều khiển bằng mạch điện. Các
đường điều khiển của phần đường đi số liệu là các ngã ra của một hoặc nhiều
Automate trạng thái hữu hạn. Các ngã vào của Automate gồm có thanh ghi lệnh,
thanh ghi này chứa lệnh phải thi hành và những thông tin từ bộ đường đi số liệu.
Ứng với cấu hình các đường vào và trạng thái hiện tại, Automate sẽ cho trạng
thái tương lai và các đường ra tương ứng với trạng thái hiện tại. Automate được
cài đặt dưới dạng là một hay nhiều mạch mảng logic lập trình được (PLA:
<i>Hình 3.3. Nguyên tắc vận hành của bộ điều khiển vi chương trình</i>
Sơ đồ nguyên tắc của bộ điều khiển dùng vi chương trình được trình bày ở
hình 3.3. Trong kỹ thuật này, các đường dây điều khiển của bộ đường đi dữ liệu
ứng với các ngã ra của một vi lệnh nằm trong bộ nhớ vi chương trình. Việc điều
khiển các tác vụ của một lệnh mã máy được thực hiện bằng một chuỗi các vi
lệnh. Một vi máy tính nằm bên trong bộ điều khiển thực hiện từng lệnh của vi
chương trình này. Chính vi máy tính này điều khiển việc thực hiện một cách
tuần tự các vi lệnh để hoàn thành tác vụ mà lệnh mã máy phải thực hiện. Các tác
vụ của lệnh mã máy cũng tuỳ thuộc vào trạng thái của phần đường đi dữ liệu.
Bộ điều khiển bằng vi chương trình được dùng rộng rãi trong các bộ xử lý
CISC. Bộ xử lý này có tập lệnh phức tạp với các lệnh có chiều dài khác nhau và
có dạng thức phức tạp. Trong các bộ xử lý CISC, người ta cài đặt một lệnh mã
máy bằng cách viết một vi chương trình. Như vậy cơng việc khá đơn giản và rất
hữu hiệu. Các sai sót trong thiết kế automat điều khiển cũng dễ sửa đổi.
3. Diễn tiến thi hành lệnh mã máy
<i>Giải mã lệnh</i> (ID: Instruction Decode)
<i>Thi hành lệnh</i> (EX: Execute)
Thâm nhập bộ nhớ trong hoặc nhảy<i> (MEM: Memory access)</i>
<i>Lưu trữ kết quả</i> (RS: Result Storing).
Mỗi giai đoạn được thi hành trong một hoặc nhiều chu kỳ xung nhịp.
Bước 1: Đọc lệnh:
MAR ←PC IR ← M[MAR]
Bộ đếm chương trình PC được đưa vào MAR . Lệnh được đọc từ bộ nhớ
trong, tại các ơ nhớ có địa chỉ nằm trong MAR và được đưa vào thanh ghi
lệnh IR.
Bước 2: Giải mã lệnh và đọc các thanh ghi nguồn:
A ← Rs1
B ← Rs2
PC ← PC + 4
Lệnh được giải mã. Kế đó các thanh ghi Rs1 và Rs2 được đưa vào A và
B. Thanh ghi PC được tăng lên để chỉ tới lệnh kế đó.
Để hiểu rõ giai đoạn này, ta lấy dạng thức của một lệnh làm tính tiêu biểu
sau đây:
Mã lệnh Thanh ghi
Rs1
Thanh ghi
Rs2 Thanh ghi Rd Tác vụ
Bit 6 5 5 5 11
Các thanh ghi nguồn Rs1 và Rs2 được sử dụng tuỳ theo tác vụ, kết quả
được đặt trong thanh ghi đích Rd.
Ta thấy việc giải mã được thực hiện cùng lúc với việc đọc các thanh ghi
Rs1 và Rs2 vì các thanh ghi này ln nằm tại cùng vị trí ở trong lệnh.
Bước 3: Thi hành lệnh:
Tuỳ theo loại lệnh mà một trong ba nhiệm vụ sau đây được thực hiện:
- Liên hệ tới bộ nhớ
Địa chỉ hiệu dụng do ALU tính được đưa vào MAR và thanh ghi nguồn
Rs1 được đưa vào MBR để được lưu vào bộ nhớ trong.
- Một lệnh của ALU
Ngã ra ALU ← Kết quả của phép tính
ALU thực hiện phép tính xác định trong mã lệnh, đưa kết quả ra ngã ra.
- Một phép nhảy
Ngã ra ALU ← Địa chỉ lệnh tiếp theo do ALU tính.
ALU cộng địa chỉ của PC với độ dời để làm thành địa chỉ đích và đưa địa
chỉ này ra ngã ra. Nếu là một phép nhảy có điều kiện thì thanh ghi trạng thái
được đọc quyết định có cộng độ dời vào PC hay không.
Bước 4: Thâm nhập bộ nhớ trong hoặc nhảy lần cuối
Giai đoạn này thường chỉ được dùng cho các lệnh nạp dữ liệu, lưu giữ dữ
liệu và lệnh nhảy.
- Tham khảo đến bộ nhớ:
MBR ← M[MAR] hoặc M[MAR] ← MBR
Số liệu được nạp vào MBR hoặc lưu vào địa chỉ mà MAR trỏ đến.
- Nhảy:
If (điều kiện), PC ← ngả ra ALU
Nếu điều kiện đúng, ngã ra ALU được nạp vào PC. Đối với lệnh nhảy không
điều kiện, ngả ra ALU luôn được nạp vào thanh ghi PC.
Bước 5: Lưu trữ kết quả
Rd ← Ngã ra ALU hoặc Rd ← MBR
Lưu trữ kết quả trong thanh ghi đích
4. Ngắt
Bộ điều khiển của CPU là bộ phận khó thực hiện nhất và ngắt quãng là
phần khó thực hiện nhất trong bộ điều khiển. Để nhận biết được một ngắt quãng
lúc đang thi hành một lệnh, ta phải biết điều chỉnh chu kỳ xung nhịp và điều này
có thể ảnh hưởng đến hiệu quả của máy tính.
Người ta đã nghỉ ra “ngắt quãng” là để nhận biết các sai sót trong tính
tốn số học, và để ứng dụng cho những hiện tượng thời gian thực. Bây giờ,ngắt
quãng được dùng cho các công việc sau đây:
Ngoại vi địi hỏi nhập hoặc xuất số liệu.
Người lập trình muốn dùng dịch vụ của hệ điều hành.
Cho một chương trình chạy từng lệnh.
Làm điểm dừng của một chương trình.
Báo tràn số liệu trong tính tốn số học.
Trang bộ nhớ thực sự khơng có trong bộ nhớ.
Báo vi phạm vùng cấm của bộ nhớ.
Báo dùng một lệnh khơng có trong tập lệnh.
Báo phần cứng máy tính bị hư.
Báo điện bị cắt.
Dù rằng ngắt quãng không xảy ra thường xuyên nhưng bộ xử lý phải
được thiết kế sao cho có thể lưu giữ trạng thái của nó trước khi nhảy đi phục vụ
ngắt quãng. Sau khi thực hiện xong chương trình phục vụ ngắt, bộ xử lý phải
khơi phục trạng thái của nó để có thể tiếp tục cơng việc.
Để đơn giản việc thiết kế, một vài bộ xử lý chỉ chấp nhận ngắt sau khi thực
hiện xong lệnh đang chạy. Khi một ngắt xảy ra, bộ xử lý thi hành các bước sau
đây:
1. Thực hiện xong lệnh đang làm.
2. Lưu trữ trạng thái hiện tại.
3. Nhảy đến chương trình phục vụ ngắt
4. Khi chương trình phục vụ chấm dứt, bộ xử lý khôi phục lại trạng thái cũ của
5. Kỹ thuật ống dẫn
5.1. Giới thiệu
Đây là một kỹ thuật làm cho các giai đoạn khác nhau của nhiều lệnh được thi
hành cùng một lúc.
Ví dụ: Chúng ta có những lệnh đều đặn, mỗi lệnh được thực hiện trong cùng
một khoản thời gian. Giả sử, mỗi lệnh được thực hiện trong 5 giai đoạn và mỗi
giai đoạn được thực hiện trong 1 chu kỳ xung nhịp. Các giai đoạn thực hiện một
lệnh là: lấy lệnh (IF: Instruction Fetch), giải mã (ID: Instruction Decode), thi
hành (EX: Execute), thâm nhập bộ nhớ (MEM: Memory Access), lưu trữ kết
quả (RS: Result Storing).
Hình III.4 cho thấy chỉ trong một chu kỳ xung nhịp, bộ xử lý có thể thực hiện
một lệnh (bình thường lệnh này được thực hiện trong 5 chu kỳ).
<i>Bảng 3.1. Các giai đoạn khác nhau của nhiều lệnh được thi hành cùng một lúc</i>
So sánh với kiểu xử lý tuần tự thông thường, 5 lệnh được thực hiện trong 25
chu kỳ xung nhịp, thì xử lý lệnh theo kỹ thuật ống dẫn thực hiện 5 lậnh chỉ
trong 9 chu kỳ xung nhịp.
Như vậy kỹ thuật ống dẫn làm tăng tốc độ thực hiện các lệnh. Tuy nhiên kỹ
thuật ống dẫn có một số ràng buộc:
- Các phép tính trên các tốn hạng vì các phép tính này có thể xảy ra ở nhiều
giai đoạn khác nhau.
- Phải có nhiều thanh ghi khác nhau dùng cho các tác vụ đọc và viết. Trên
- Trong một máy có kỹ thuật ống dẫn, có khi kết quả của một tác vụ trước
đó, là toán hạng nguồn của một tác vụ khác. Như vậy sẽ có thêm những khó
khăn mà ta sẽ đề cập ở mục tới.
- Cần phải giải mã các lệnh một cách đơn giản để có thể giải mã và đọc các
toán hạng trong một chu kỳ duy nhất của xung nhịp.
- Cần phải có các bộ làm tính ALU hữu hiệu để có thể thi hành lệnh số học
dài nhất, có số giữ, trong một khoảng thời gian ít hơn một chu kỳ của xung
nhịp.
- Cần phải có nhiều thanh ghi lệnh để lưu giữ lệnh mà chúng ta phải xem xét
cho mỗi giai đoạn thi hành lệnh.
- Cuối cùng phải có nhiều thanh ghi bộ đếm chương trình PC để có thể tái
tục các lệnh trong trường hợp có ngắt quãng
5.2. Khó khăn trong kỹ thuật ống dẫn
Khi thi hành lệnh trong một máy tính dùng kỹ thuật ống dẫn, có nhiều
trường hợp làm cho việc thực hiện kỹ thuật ống dẫn không thực hiện được
như là: thiếu các mạch chức năng, một lệnh dùng kết quả của lệnh trước, một
lệnh nhảy.
Ta có thể phân biệt 3 loại khó khăn: khó khăn do cấu trúc, khó khăn do số
liệu<i> và </i>khó khăn do điều khiển.
5.3. Khó khăn do cấu trúc
Đây là khó khăn do thiếu bộ phận chức năng, ví dụ trong một máy tính
dùng kỹ thuật ống dẫn phải có nhiều ALU, nhiều PC, nhiều thanh ghi lệnh IR
... Các khó khăn này được giải quyết bằng cách thêm các bộ phận chức năng
cần thiết và hữu hiệu.
Lấy ví dụ trường hợp các lệnh liên tiếp sau:
<i>Lệnh 1: </i>ADD
R1, R2, R3 <i>Lệnh</i>
<i>2: </i>SUB R4, R1,
R5 <i>Lệnh 3: </i>AND
R6, R1, R7 <i>Lệnh</i>
<i>4: </i>OR R8, R1, R9
Bảng 3.1 cho thấy R1, kết quả của lệnh 1 chỉ có thể được dùng cho lệnh 2
sau giai đoạn MEM của lệnh 1, nhưng R1 được dùng cho lệnh 2 vào giai
đoạn EX của lệnh 1. Chúng ta cũng thấy R1 được dùng cho các lệnh 3 và 4.
<i>Hình 3.4. Chuỗi lệnh minh hoạ khó khăn do số liệu</i>
Để khắc phục khó khăn này, một bộ phận phần cứng được dùng để đưa kết
quả từ ngã ra ALU trực tiếp vô một trong các thanh ghi ngã vào như trong hình
3.5
Khi bộ phận phần cứng nêu trên phát hiện có dùng kết quả của ALU làm toán
hạng cho liệt kê, nó tác động vào mạch đa hợp để đưa ngã ra của ALU vào ngã
vào của ALU hoặc vào ngã vào của một đơn vị chức năng khác nếu cần.
5.5. Khó khăn do điều khiển
Các lệnh làm thay đổi tính thi hành các lệnh một cách tuần tự (nghĩa là
PC tăng đều đặn sau mỗi lệnh), gây khó khăn về điều khiển. Các lệnh này là
lệnh nhảy đến một địa chỉ tuyệt đối chứa trong một thanh ghi, hay lệnh nhảy
đến một địa chỉ xác định một cách tương đối so với địa chỉ hiện tại của bộ đếm
chương trình PC. Các lệnh nhảy trên có thể có hoặc khơng điều kiện.
Trong trường hợp đơn giản nhất, tác vụ nhảy khơng thể biết trước giai
đoạn giải mã (xem hình 3.3). Như vậy, nếu lệnh nhảy bắt đầu ở chu kỳ C thì
lệnh mà chương trình nhảy tới chỉ được bắt đầu ở chu kỳ C+2. Ngoài ra, phải
biết địa chỉ cần nhảy đến mà ta có ở cuối giai đoạn giải mã ID. Trong lệnh nhảy
tương đối, ta phải cộng độ dời chứa
trong thanh ghi lệnh IR vào thanh ghi PC. Việc tính địa chỉ này chỉ được thực
hiện vào giai đoạn ID với điều kiện phải có một mạch công việc riêng biệt.
Vậy trong trường hợp lệnh nhảy không điều kiện, lệnh mà chương trình
nhảy đến bắt đầu thực hiện ở chu kỳ C+2 nếu lệnh nhảy bắt đầu ở chu kỳ C.
Cho các lệnh nhảy có điều kiện thì phải tính tốn điều kiện. Thông
thường các kiến trúc RISC đặt kết quả việc so sánh vào trong thanh ghi trạng
thái, hoặc vào trong thanh ghi tổng quát. Trong cả 2 trường hợp, đọc điều kiện
tương đương với đọc thanh ghi. Đọc thanh ghi có thể được thực hiện trong phân
nửa chu kỳ cuối giai đoạn ID.
Vậy trường hợp đơn giản, người ta có thể được địa chỉ cần nhảy đến và
điều kiện nhảy cuối giai đoạn ID. Vậy có chậm đi một chu kỳ mà người ta có
thể giải quyết bằng nhiều cách.
Cách thứ nhất là đóng băng kỹ thuật ống dẫn trong một chu kỳ, nghĩa là
ngưng thi hành lệnh thứ i+1 đang làm nếu lệnh thư i là lệnh nhảy. Ta mất trắng
một chu kỳ cho mỗi lệnh nhảy.
Cách thứ hai là thi hành lệnh sau lệnh nhảy nhưng lưu ý rằng hiệu quả
của một lệnh nhảy bị chậm mất một lệnh. Vậy lệnh theo sau lệnh nhảy được
thực hiện trước khi lệnh mà chương trình phải nhảy tới được thực hiện. Chương
trình dịch hay người lập trình có nhiệm vụ xen vào một lệnh hữu ích sau lệnh
nhảy.
Trong trường hợp nhảy có điều kiện, việc nhảy có thể được thực hiện hay
khơng thực hiện. Lệnh hữu ích đặt sau lệnh nhảy khơng làm sai lệch chương
trình dù điều kiện nhảy đúng hay sai.
Bộ xử lý RISC SPARC có những lệnh nhảy với huỷ bỏ. Các lệnh này cho
phép thi hành lệnh sau lệnh nhảy nếu điều kiện nhảy đúng và huỷ bỏ thực hiện
lệnh đó nếu điều kiện nhảy sai.
6. Ống dẫn, siêu ống dẫn, siêu vô hướng
6.1. Giới thiệu.
6.1.1. Siêu ống dẫn
dụ ở hình III.7, nếu lệnh thứ i là một lệnh nhảy tương đối thì lệnh này được giải
mã trong giai đoạn ID, địa chỉ nhảy đến được tính vào giai đoạn EX, lệnh phải
được nhảy tới là lệnh thứ i+4, vậy có trì trệ 3 lệnh thay vì 1 lệnh trong kỹ thuật
ống dẫn bình thường.
<i>Hình 3.6. Siêu ống dẫn bậc 2 so với siêu ống dẫn đơn giản. </i>
Trong khoảng thời gian Tc, máy có siêu ống dẫn làm 2 lệnh thay vì 1 lệnh
như trong máy có kỹ thuật ống dẫn đơn giản
6.1.2. Siêu ống dẫn vơ hướng
Máy tính siêu vơ hướng bậc n có thể thực hiện đồng thời n lệnh trong một chu
kỳ xung nhịp Tc. Hình 3.7 trình bày một ví dụ về sự vận hành của một máy tính
siêu vơ hướng bậc 2 so với một máy tính dùng kỹ thuật ống dẫn.
Trong một máy tính siêu vơ hướng phần cứng phải quản lý việc đọc và thi hành
đồng thời nhiều lệnh. Vậy nó phải có khả năng quản lý các quan hệ giữa số liệu
với nhau. Cũng cần phải chọn các lệnh có khả năng được thi hành cùng một lúc.
Những bộ xử lý đầu tiên đưa ra thị trường dùng kỹ thuật này là các bộ xử lý
Intel i860 và IBM RS/6000. Các bộ xử lý này có khả năng thực hiện song song
nhiều tác vụ trên số nguyên và trên số lẻ.
Năm 1992, người ta thấy xuất hiện các bộ xử lý có nhiều bộ thực hiện tác vụ độc
lập với nhau (nhiều ALU, bộ tính toán số lẻ, nạp dữ liệu, lưu dữ liệu, nhảy), có
thể thực hiện song song nhiều lệnh (lệnh tính số nguyên, số lẻ, lệnh bộ nhớ, lệnh
nhảy...). Số lệnh có thể được thi hành song song càng nhiều thì phần cứng thực
hiện việc này càng phức tạp.
6.1.3. Siêu ống dẫn vô hướng
Đây là một kỹ thuật làm cho các giai đoạn khác nhau của nhiều lệnh được thi
hành cùng một lúc.
Ví dụ: Chúng ta có những lệnh đều đặn, mỗi lệnh được thực hiện trong cùng
một khoản thời gian. Giả sử, mỗi lệnh được thực hiện trong 5 giai đoạn và mỗi
giai đoạn được thực hiện trong 1 chu kỳ xung nhịp. Các giai đoạn thực hiện một
Hình 3.9 cho thấy chỉ trong một chu kỳ xung nhịp, bộ xử lý có thể thực
hiện một lệnh (bình thường lệnh này được thực hiện trong 5 chu kỳ).
So sánh với kiểu xử lý tuần tự thông thường, 5 lệnh được thực hiện trong 25
chu kỳ xung nhịp, thì xử lý lệnh theo kỹ thuật ống dẫn thực hiện 5 lậnh chỉ trong
9 chu kỳ xung nhịp.
Như vậy kỹ thuật ống dẫn làm tăng tốc độ thực hiện các lệnh. Tuy nhiên kỹ
thuật ống dẫn có một số ràng buộc:
- Cần phải có một mạch điện để thi hành mỗi giai đoạn của lệnh vì tất cả các
giai đoạn của lệnh được thi hành cùng lúc. Trong một bộ xử lý khơng dùng kỹ
thuật ống dẫn, ta có thể dùng bộ làm toán ALU để cập nhật thanh ghi PC, cập
nhật địa chỉ của tốn hạng bộ nhớ, địa chỉ ơ nhớ mà chương trình cần nhảy tới,
làm các phép tính trên các tốn hạng vì các phép tính này có thể xảy ra ở nhiều
giai đoạn khác nhau.
- Phải có nhiều thanh ghi khác nhau dùng cho các tác vụ đọc và viết. Trên
hình 3.9, tại một chu kỳ xung nhịp, ta thấy cùng một lúc có 2 tác vụ đọc (ID,
MEM) và 1 tác vụ viết (RS).
- Trong một máy có kỹ thuật ống dẫn, có khi kết quả của một tác vụ trước đó,
là tốn hạng nguồn của một tác vụ khác. Như vậy sẽ có thêm những khó khăn
mà ta sẽ đề cập ở mục tới.
- Cần phải giải mã các lệnh một cách đơn giản để có thể giải mã và đọc các
- Cần phải có các bộ làm tính ALU hữu hiệu để có thể thi hành lệnh số học
dài nhất, có số giữ, trong một khoảng thời gian ít hơn một chu kỳ của xung nhịp.
- Cần phải có nhiều thanh ghi lệnh để lưu giữ lệnh mà chúng ta phải xem xét
cho mỗi giai đoạn thi hành lệnh.
- Cuối cùng phải có nhiều thanh ghi bộ đếm chương trình PC để có thể tái tục
các lệnh trong trường hợp có ngắt quãng.
6.2. Hạn chế.
Ta có thể phân biệt 3 loại khó khăn: khó khăn do cấu trúc, khó khăn do số liệu
và khó khăn do điều khiển.
6. 2.1. Khó khăn do cấu trúc:
Đây là khó khăn do thiếu bộ phận chức năng, ví dụ trong một máy tính dùng
kỹ thuật ống dẫn phải có nhiều ALU, nhiều PC, nhiều thanh ghi lệnh IR ... Các
khó khăn này được giải quyết bằng cách thêm các bộ phận chức năng cần thiết
và hữu hiệu.
6.2.2. Khó khăn do số liệu:
Lấy ví dụ trường hợp các lệnh liên tiếp sau:
Lệnh 1: <i><b>ADD R1, R2, R3 </b></i>
Lệnh 2: <i><b>SUB R4, R1, R5 </b></i>
Lệnh 3: <i><b>AND R6, R1, R7</b></i>
Lệnh 4: <i><b>OR R8, R1, R9</b></i>
Hình III.5 cho thấy R1, kết quả của lệnh 1 chỉ có thể được dùng cho lệnh 2 sau
giai đoạn MEM của lệnh 1, nhưng R1 được dùng cho lệnh 2 vào giai đoạn EX
của lệnh 1.
Chúng ta cũng thấy R1 được dùng cho các lệnh 3 và 4.
<i>Hình 3.10. Chuỗi lệnh minh hoạ khó khăn do số liệu.</i>
<i>Hình 3.11. ALU với bộ phận phần cứng đưa kết quả tính tốn trở lại ngã vào</i>
Khi bộ phận phần cứng nêu trên phát hiện có dùng kết quả của ALU làm tốn
hạng cho liệt kê, nó tác động vào mạch đa hợp để đưa ngã ra của ALU vào ngã
vào của ALU hoặc vào ngã vào của một đơn vị chức năng khác nếu cần.
6.2.3. Khó khăn do điều khiển:
Các lệnh làm thay đổi tính thi hành các lệnh một cách tuần tự (nghĩa là PC tăng
đều đặn sau mỗi lệnh), gây khó khăn về điều khiển. Các lệnh này là lệnh nhảy
đến một địa chỉ tuyệt đối chứa trong một thanh ghi, hay lệnh nhảy đến một địa
chỉ xác định một cách tương đối so với địa chỉ hiện tại của bộ đếm chương trình
PC. Các lệnh nhảy trên có thể có hoặc không điều kiện.
Trong trường hợp đơn giản nhất, tác vụ nhảy khơng thể biết trước giai đoạn giải
mã (xem hình 3.9). Như vậy, nếu lệnh nhảy bắt đầu ở chu kỳ C thì lệnh mà
chương trình nhảy tới chỉ được bắt đầu ở chu kỳ C+2. Ngoài ra, phải biết địa chỉ
cần nhảy đến mà ta có ở cuối giai đoạn giải mã ID. Trong lệnh nhảy tương đối,
ta phải cộng độ dời chứa trong thanh ghi lệnh IR vào thanh ghi PC. Việc tính địa
chỉ này chỉ được thực hiện vào giai đoạn ID với điều kiện phải có một mạch
công việc riêng biệt.
Vậy trong trường hợp lệnh nhảy khơng điều kiện, lệnh mà chương trình nhảy
đến bắt đầu thực hiện ở chu kỳ C+2 nếu lệnh nhảy bắt đầu ở chu kỳ C.
trong thanh ghi tổng quát. Trong cả 2 trường hợp, đọc điều kiện tương đương
với đọc thanh ghi. Đọc thanh ghi có thể được thực hiện trong phân nửa chu kỳ
cuối giai đoạn ID.
Một trường hợp khó hơn có thể xảy ra trong những lệnh nhảy có điều kiện. Đó
là điều kiện được có khi so sánh 2 thanh ghi và chỉ thực hiện lệnh nhảy khi kết
quả so sánh là đúng. Việc tính tốn trên các đại lượng logic khơng thể thực hiện
được trong phân nửa chu kỳ và như thế phải kéo dài thời gian thực hiện lệnh
nhảy có điều kiện. Người ta thường tránh các trường hợp này để không làm
giảm mức hữu hiệu của máy tính.
Vậy trường hợp đơn giản, người ta có thể được địa chỉ cần nhảy đến và điều
kiện nhảy cuối giai đoạn ID. Vậy có chậm đi một chu kỳ mà người ta có thể giải
quyết bằng nhiều cách.
Cách thứ nhất là đóng băng kỹ thuật ống dẫn trong một chu kỳ, nghĩa là ngưng
thi hành lệnh thứ i+1 đang làm nếu lệnh thư i là lệnh nhảy. Ta mất trắng một chu
kỳ cho mỗi lệnh nhảy.
Cách thứ hai là thi hành lệnh sau lệnh nhảy nhưng lưu ý rằng hiệu quả của một
lệnh nhảy bị chậm mất một lệnh. Vậy lệnh theo sau lệnh nhảy được thực hiện
trước khi lệnh mà chương trình phải nhảy tới được thực hiện. Chương trình dịch
hay người lập trình có nhiệm vụ xen vào một lệnh hữu ích sau lệnh nhảy.
Trong trường hợp nhảy có điều kiện, việc nhảy có thể được thực hiện hay khơng
thực hiện. Lệnh hữu ích đặt sau lệnh nhảy khơng làm sai lệch chương trình dù
điều kiện nhảy đúng hay sai.
CÂU HỎI ƠN TẬP
1. Trình bày đường đi dữ liệu
2. Trình bày bộ điều khiển điện tử
<b>CHƯƠNG 4: BỘ NHỚ</b>
<b>Mã chương : 12.04</b>
<b>Giới thiệu :</b>
Trình bày các loại bộ nhớ trong Rom, Ram và bộ nhớ ngồi của máy tính,
cách truy xuất dữ liệu.
<b>Mục tiêu: </b>
-Trình bày được các cấp bộ nhớ và cách thức vận hành của các loại bộ nhớ được
giới thiệu để có thể đánh giá được hiệu năng hoạt động của các loại bộ nhớ.
- Phân biệt được các loại bộ nhớ và các loại ram
- Rèn luyện kỹ năng tổ chức cơng việc
<b>Nội dung chính:</b>
1. Các loại bộ nhớ
Bộ nhớ chứa chương trình, nghĩa là chứa lệnh và số liệu. Người ta phân biệt
các loại bộ nhớ: Bộ nhớ trong (RAM-Bộ nhớ vào ra ngẫu nhiên), được chế tạo
bằng chất bán dẫn; bộ nhớ chỉ đọc (ROM) cũng là loại bộ nhớ chỉ đọc và bộ nhớ
ngoài bao gồm: đĩa cứng, đĩa mềm, băng từ, trống từ, các loại đĩa quang, các
loại thẻ nhớ,...
1.1. RAM, ROM
<i>Hình 4.1. Vi mạch nhớ ROM-BIOS</i>
Quá trình phát triển ROM đã trải qua nhiều thế hệ. ROM các thế hệ đầu tiên
hay còn gọi là ROM nguyên thuỷ (Ordinary ROM) sử dụng tia cực tím để ghi
thơng tin. Trong thế hệ tiếp theo ROM có thể lập trình được (PROM
-Programmable ROM), thơng tin có thể được ghi vào PROM nhờ một thiết bị đặc
biệt gọi là bộ lập trình PROM. Tiến thêm một bước, với ROM có thể lập trình
và xố được (EPROM - Erasable programmable read-only memory), thơng tin
trong EPROM có thể xố được sử dụng tia cực tím có cường độ cao. Kế tiếp
EPROM, EEPROM (Electrically Erasable PROM) là loại ROM tiến tiến nhất
hiện nay. EEPROM có thể xố được bằng điện và có thể ghi được thông tin sử
dụng phần mềm chuyên dụng. Bộ nhớ Flash là một dạng bộ nhớ EEPROM được
dùng phổ biến làm thiết bị lưu trữ trong các thiết bị cầm tay. Flash có tốc độ đọc
ghi thơng tin nhanh hơn EEPROM và thông tin được đọc ghi theo từng khối.
1.1.2. Bộ nhớ RAM:
so với DRAM. Ngược lại, mỗi bit DRAM cấu tạo dựa trên một tụ điện. Do bản
chất của tụ điện ln có khuynh hướng tự phóng điện tích, thơng tin trong bit
DRAM sẽ dần bị mất. Vì vậy, DRAM cần được làm tươi (refresh) định kỳ để
bảo tồn thơng tin. DRAM thường có tốc độ truy cập thấp hơn so với SRAM,
nhưng bù lại, DRAM có cấu trúc gọn nhẹ nên có thể tăng mật độ cấy linh kiện
dẫn đến giá thành một đơn vị nhớ DRAM thấp hơn SRAM.
1.1.2.1. Bộ nhớ SRAM ( Ram Tĩnh)
RAM tĩnh được chế tạo theo công nghệ ECL (dùng trong CMOS và
BiCMOS). Mỗi bit nhớ gồm có các cổng logic với 6 transistor MOS. SRAM là
bộ nhớ nhanh, việc đọc không làm hủy nội dung của ô nhớ và thời gian thâm
<i>Hình 4.2. Cấu tạo một mạch lật trong bộ nhớ SRAM</i>
1.1.2.2. Bộ nhớ DRAM ( Ram động)
RAM động dùng kỹ thuật MOS. Mỗi bit nhớ gồm một transistor và một tụ
điện. Việc ghi nhớ dữ liệu dựa vào việc duy trì điện tích nạp vào tụ điện và như
vậy việc đọc một bit nhớ làm nội dung bit này bị hủy. Do vậy sau mỗi lần đọc
một ô nhớ, bộ phận điều khiển bộ nhớ phải viết lại nội dung ơ nhớ đó. Chu kỳ
bộ nhớ cũng theo đó mà ít nhất là gấp đơi thời gian thâm nhập ô nhớ.
Việc lưu giữ thông tin trong bit nhớ chỉ là tạm thời vì tụ điện sẽ phóng hết
điện tích đã nạp và như vậy phải làm tươi bộ nhớ sau khoảng thời gian 2μs. Việc
làm tươi được thực hiện với tất cả các ô nhớ trong bộ nhớ. Công việc này được
thực hiện tự động bởi một vi mạch bộ nhớ.
Bộ nhớ DRAM chậm nhưng rẻ tiền hơn SRAM.
Khác với SRAM, các bit DRAM được hình thành dựa trên tụ điện. Hình 4.3
minh hoạ một bit DRAM và mạch nhớ DRAM tổ chức thành ma trận nhớ gồm
các hàng và cột. Mỗi bit DRAM có cấu tạo khá đơn giản, gồm 1 tụ điện và 1
transitor cấp nguồn. Mức điện tích trong tụ điện được sử dụng để biểu diễn các
giá trị 0 và 1, chẳng hạn mức đầy điện tích ứng với mức 1, khơng tích điện ứng
với mức 0.
Do bản chất tụ thường tự phóng điện nên điện tích trong tụ có xu hướng giảm
dần dẫn đến thơng tin trong tụ cũng bị mất theo. Để tránh bị mất thơng tin, điện
tích trong tụ cần được nạp lại thường xuyên – quá trình này được gọi là quá
Trong các loại DRAM, SDRAM (Synchronous DRAM) được sử dụng phổ
biến nhất. SDRAM là DRAM hoạt động đồng bộ với nhịp đồng hồ của bus.
SDRAM được chia thành 2 loại theo khả năng truyền dữ liệu: (1) SRD SDRAM
(Single Data Rate SDRAM) – SDRAM có tỷ suất dữ liệu đơn, chấp nhận một
thao tác đọc/ghi và chuyển 1 từ dữ liệu trong 1 chu kỳ đồng hồ với các tần số
làm việc 100MHz và 133MHz và (2) DDR SDRAM (Double Data Rate
SDRAM) - SDRAM có tỷ suất dữ liệu kép, chấp nhận hai thao tác đọc/ghi và
chuyển 2 từ dữ liệu trong 1 chu kỳ đồng hồ. DDR SDRAM có 4 loại cho đến
hiện nay:
DDR1 SDRAM: tần số làm việc 266, 333, 400, 533 MHz: có khả năng
chuyển 2 từ dữ liệu trong 1 chu kỳ đồng hồ, , điện áp hoạt động 2.5V, tổng số
chân là 184 chân, chuẩn giao tiếp DIMM.
DDR2 SDRAM: tần số làm việc 400, 533, 800,1066 MHz: có khả năng
chuyển 4 từ dữ liệu trong 1 chu kỳ đồng hồ, tổng số chân là 240 chân, điện áp là
1.8V. Chuẩn giao tiếp là DIMM.
DDR3 SDRAM: tần số làm việc 800, 1066, 1333, 1600,2133 MHz: có khả
năng chuyển 8 từ dữ liệu trong 1 chu kỳ đồng hồ, tổng số chân là 240, điện áp
hoạt động 1.5v. Chuẩn giao tiếp là DIMM
Hoặc có thể ghi như sau:
SDR SDRAM được phân loại theo bus speed như sau:
PC-66: 66 MHz bus.
PC-100: 100 MHz bus.
PC-133: 133 MHz bus.
<i>Hình 4.4. RAM SDR-SDRAM</i>
DDR SDRAM được phân loại theo bus speed và bandwidth như sau:
DDR-200: Còn được gọi là PC-1600. 100 MHz bus với 1600 MB/s bandwidth.
DDR-266: Còn được gọi là PC-2100. 133 MHz bus với 2100 MB/s
DDR-333: Còn được gọi là PC-2700. 166 MHz bus với 2667 MB/s bandwidth.
DDR-400: Còn được gọi là PC-3200. 200 MHz bus với 3200 MB/s bandwidth.
<i>Hình 4.5. RAM DDR-SDRAM</i>
<i>Hình 4.6. RAM DDR II SDRAM</i>
DDR3 SDRAM được phân loại theo bus speed như sau:
DDR3-1066: Còn được gọi là PC3-8500. 533 MHz clock, 1066 MHz bus
DDR3-1333: Còn được gọi là PC3-10600. 667 MHz clock, 1333 MHz bus
DDR3-1600: Còn được gọi là PC3-12800. 800 MHz clock, 1600 MHz bus
DDR3-2133: Còn được gọi là PC3-17000. 1066 MHz clock, 2133 MHz bus
DDR4SDRAM được phân loại theo bus speed như sau:
DDR4-2400: Còn được gọi là PC4-2400. 1066 MHz clock, 2400 MHz bus
<i>Hình 4.7. Các lại ram :DDRamIII, Ram Laptop</i>
1.2. Thiết bị lưu trữ
<b>FDD (Floppy Disk Drive): ổ đĩa mềm </b><sub></sub> đọc đĩa mềm. FD (Floppy Disc):
đĩa mềm, dung lượng có giới hạn, tối đa 2.88 MB. Hầu hết các đĩa mềm chỉ sử
dụng dung lượng 1.44 MB, tốc độ truy xuất chậm, do dung lượng ít và tốc độ
hạn chế <sub></sub> ngày nay ổ đĩa mềm & đĩa mềm khơng cịn phổ biến.
<i>Hình 4.8. Ổ đĩa mềm, đĩa mềm và cách lắp ổ đĩa với main</i>
<b>Hard Disk Drive: thiết bị lưu trữ phổ biến nhất mà bất kì một máy tính</b>
nào cũng có trang bị. Ưu điểm chính của HDD là nhỏ gọn, tốc độ truy xuất
nhanh, dung lượng lưu trữ lớn, thời gian sử dụng bền lâu.
<i>Hình 4.9. Sơ đồ cấu tạo ổ cứng</i>
<b>-</b> <b>Các chuẩn giao tiếp : </b>
<b>-</b> Các thế hệ: ATA1, ATA2, ATA3, ATA4, ATA5, ATA6, ATA7…
<i>Hình 4.10. Hình chuẩn ATA( Cáp nối và đầu cắm cáp trên mainboard)</i>
<i>Bảng 4.1. Bảng các chuẩn ATA</i>
Chuẩn ATA 1 ATA 2
(EIDE) ATA 3 ATA 4 ATA 5 ATA 6
Chế độ
truyền PIO 1
PIO 4
DMA 2
PIO 4
DMA 2
PIO 4
DMA 2
UDMA 2
PIO 4
DMA 2
UDMA 4
PIO 4
DMA 2
UDMA 5
Tốc độ
truyền 4 MBps 16 MBps 16 MBps 33 MBps 66 MBps 100 MBps
Cáp 40 pin 40 pin 40 pin 40 pin 40 pin
80 sợi
40 pin
80 sợi
Năm 1981 1994 1996 1997 1999 2000
-SATA (Serial ATA): chuẩn giao tiếp mới, mỗi dây cáp chỉ kết nối 1 thiết
bị. Chuẩn SATA khơng có khái niệm “Master” & “Slave”.
-Tốc độ: SATA 1 150 MBps, SATA 2 300MBps.
<i>Hình 4.11. Các Jack cắm sata</i>
Chuẩn ATA SATA
Chế độ truyền 66 – 133 150 – 300 MB/s
Jumper Master/ Slave No Jumper
Chân nguồn 4 15
Cáp data 40 pin 7 pin
Chiều dài cáp 36 inches 40 inches
Thiết bị kết nối/ 1 cáp 2 1
Điện áp 5, 12 volt 5, 12 volt
- SCSI (Small Computer System Interface): chuẩn giao tiếp có thể kết nối
liên tiếp nhiều thiết bị, sử dụng trong các máy Server, MAC… tốc độ truyền
- Các thiết bị kết nối: HDD, CD/DVD ROM Drive, Tape Drives, Zip
Drives, Removable Drives.
<i>Hình 4.12. Chuẩn SCSI</i>
Ổ đĩa quang là thiết bị dùng để đọc & ghi dữ liệu <sub></sub> đĩa quang. Ngày nay ổ
đĩa quang & đĩa quang được ứng dụng rộng rãi trong máy tính, vì tốc độ truy
xuất nhanh, khả năng lưu trữ lớn, bảo quản & sử dụng được lâu dài.
<i>Hình 4.13. Đĩa quang và ổ đĩa quang (ODD)</i>
- Lưu trữ: đĩa CD có khả năng lưu trữ 650-700MB, dữ liệu được lưu trên bề
mặt đĩa theo cơ chế hình xoắn ốc từ trong ra ngoài.
- Tốc độ truy xuất: X (1X = 150KB/s), đĩa CD có thể đọc được trên các
thiết bị khác khơng phải là máy tính.
- CD Recordable (CD-R): dữ liệu ghi dưới dạng từng bits, ghi bằng tia
laser, tốc độ đọc 52X, định dạng theo kiểu CDFS (CD file system). Ghi 1 lần, có
thể ghi tiếp nếu dung lượng cịn trống (Multisession Recording).
- CD Rewritable (CD-RW): dữ liệu có thể xóa, ghi lại nhiều lần bằng phần
mềm. CDRW có 3 giá trị: 8×4×32× (tốc độ Write, Rewrite, Read)… CD RW
định dạng theo kiểu UDF (Universal Data Format).
<i>Bảng 4.3. Các chuẩn của đĩa quang và thơng số của nó</i>
<b>Các chuẩn DVD</b> <b>Mô tả chức năng</b>
DVD ROM Chỉ đọc đĩa quang
DVD R Chỉ ghi dữ liệu 1 lần và không xóa được
DVD R Dual Layer (DL) Ghi 2 lớp
DVD RW Ghi xóa đĩa nhiều lần
2. Các cấp bộ nhớ
2.1. Giới thiệu
Cache hay còn gọi là bộ nhớ đệm, bộ nhớ khay là một thành phần của cấu
trúc phân cấp của hệ thống bộ nhớ . Cache đóng vai trong trung gian, trung
chuyển dữ liệu từ bộ nhớ chính về CPU và ngược lại. Hình 4.11 minh hoạ vị trí
của bộ nhớ cache trong hệ thống nhớ. Với các hệ thống CPU cũ sử dụng cơng
nghệ tích hợp thấp, bộ nhớ cache thường nằm ngoài CPU; với các CPU mới sử
dụng cơng nghệ tích hợp cao, bộ nhớ cache thường được tích hợp vào trong
CPU nhằm nâng cao tốc độ và băng thông trao đổi dữ liệu giữa CPU và cache.
<i>Hình 4.14. Vị trí của bộ nhớ cache trong hệ thống nhớ</i>
Dung lượng của bộ nhớ cache thường nhỏ so với dung lượng của bộ nhớ
chính và bộ nhớ ngồi. Với các hệ thống máy tính cũ, dung lượng cache là
khoảng 16KB, 32KB,..., 128KB; với các hệ thống máy tính gần đây, dung lượng
cache lớn hơn, khoảng 256KB, 512KB, 1MB, 2MB, 4MB, 8MB và 16MB.
Cache có tốc độ truy cập nhanh hơn nhiều so với bộ nhớ chính, đặc biệt với
cache được tích hợp vào CPU. Tuy nhiên, giá thành bộ nhớ cache (tính theo bit)
thường đắt hơn nhiều so với bộ nhớ chính. Với các hệ thống CPU mới, cache
thường được chia thành hai hay nhiều mức (levels): mức 1 có dung lượng
khoảng 16-32KB có tốc độ truy cập rất cao và mức 2 có dung lượng khoảng
Các đặc tính như lượng thông tin lưu trữ, thời gian thâm nhập bộ nhớ, chu
kỳ bộ nhớ, giá tiền mỗi bit nhớ khiến ta phải phân biệt các cấp bộ nhớ: các bộ
nhớ nhanh với dung lượng ít đến các bộ nhớ chậm với dung lượng lớn (hình
4.15)
<i>Hình 4.15. Các cấp bộ nhớ</i>
Các đặc tính chính của các cấp bộ nhớ dẫn đến hai mức chính là: mức
cache - bộ nhớ trong và mức bộ nhớ ảo (bao gồm bộ nhớ trong và khơng gian
cấp phát trên đĩa cứng) (hình 4.15). Cách tổ chức này trong suốt đối với người
sử dụng. Người sử dụng chỉ thấy duy nhất một không gian định vị ô nhớ, độc lập
với vị trí thực tế của các lệnh và dữ liệu cần thâm nhập
.
Các cấp bộ nhớ giúp ích cho người lập trình muốn có một bộ nhớ thật
nhanh với chi phí đầu tư giới hạn. Vì các bộ nhớ nhanh đắt tiền nên các bộ nhớ
được tổ chức thành nhiều cấp, cấp có dung lượng ít thì nhanh nhưng đắt tiền hơn
cấp có dung lượng cao hơn. Mục tiêu của việc thiết lập các cấp bộ nhớ là người
dùng có một hệ thống bộ nhớ rẻ tiền như cấp bộ nhớ thấp nhất và gần nhanh như
cấp bộ nhớ cao nhất. Các cấp bộ nhớ thường được lồng vào nhau. Mọi dữ liệu
trong một cấp thì được gặp lại trong cấp thấp hơn và có thể tiếp tục gặp lại trong
cấp thấp nhất. Chúng ta có nhận xét rằng, mỗi cấp bộ nhớ có dung lượng lớn
hơn cấp trên mình, ánh xạ một phần địa chỉ các ơ nhớ của mình vào địa chỉ ơ
nhớ của cấp trên trực tiếp có tốc độ nhanh hơn, và các cấp bộ nhớ phải có cơ chế
quản lý và kiểm tra các địa chỉ ánh xạ
2.2.1. Bộ nhớ trong – Cache, RAM
Bộ nhớ trong thoả mãn các yêu cầu của cache và được dùng làm đệm vào
ra vì bộ nhớ trong vừa là nơi chứa các thơng tin từ ngồi đưa vào, vừa là nơi
xuất ra các thông tin cho cache. Việc đo hiệu quả của bộ nhớ trong dựa vào thời
gian thâm nhập và bề rộng dãi thông. Thông thường thời gian thâm nhập bộ nhớ
trong là phần tử quan trọng cho cache trong lúc dãi thơng bộ nhớ là phần chính
cho các tác vụ xuất nhập. Với việc dùng phổ biến các cache ngồi, dãi thơng của
bộ nhớ trong cũng trở thành quan trọng cho cache.
Mặc dù cache cần bộ nhớ trong có thời gian thâm nhập nhỏ, nhưng thường
thì dễ cải thiện dãi thông bộ nhớ nhờ nhiều cách tổ chức bộ nhớ mới, hơn là
giảm thời gian thâm nhập cho cache. Cache thụ hưởng các tiến bộ về dãi thông
bằng cách tăng kích thước của mỗi khối của cache mà khơng tăng đáng kể trừng
phạt thất bại cache.
được nhân đôi hay nhân bốn. Vậy cũng phải chi tiêu thêm để nới rộng bus bộ
nhớ (là bus nối bộ xử lý với bộ nhớ).
Một ví dụ bộ xử lý có chiều dài ơ nhớ trong lớn là bộ xử lý ALPHA AXP 21064
(Hãng DEC). Cache ngoài, bộ nhớ trong và bus bộ nhớ đều có độ rộng là 256
bit.
* <i>Bộ nhớ đan chéo đơn giản: Các IC bộ nhớ có thể được tổ chức thành dãi</i>
để đọc hay viết nhiều từ cùng một lúc thay vì chỉ đọc một từ, độ rộng của bus và
của cache không thay đổi. Khi gởi nhiều địa chỉ đến nhiều dãi thì ta đọc được
nhiều từ cùng một lúc. Bộ nhớ đan chéo cũng cho phép ghi vào bộ nhớ nhiều từ
cùng một lúc. Tổ chức bộ nhớ đan chéo đơn giản không rắc rối nhiều so với tổ
chức bình thường của bộ nhớ trong vì các dãi có thể dùng chung các đường địa
chỉ với bộ điều khiển ô nhớ, và như thế mỗi dãi có thể dùng phần số liệu của bus
bộ nhớ. SDRAM và DDR SDRAM là các loại RAM dùng kỹ thuật này
* <i>Bộ nhớ đan chéo tổ chức thành dãi độc lập: một tổ chức bộ nhớ đan chéo</i>
hiệu quả hơn, là cho phép nhiều thâm thập bộ nhớ và như thế cho phép các dãi
làm việc độc lập với nhau. Mỗi dãi cần có các đường địa chỉ riêng biệt và đôi
khi cần bus số liệu riêng biệt: Trong trường hợp này bộ xử lý có thể tiếp tục
công việc của mình trong lúc chờ đợi số liệu (trường hợp thất bại cache).
RDRAM là bộ nhớ loại này
<i>Hình 4.17. Bộ nhớ đan chéo bậc 4.</i>
Dải thứ i chứa tất cả các từ có địa chỉ thoả mãn công thức (địa chỉ) mod 4 = i
2.2.2. Bộ nhớ ảo – HDD
Bộ nhớ ảo xác định một cơ chế vận chuyển tự động số liệu giữa bộ nhớ trong và
bộ nhớ ngoài (đĩa từ).
Trước đây, khi độ dài của chương trình vượt quá giới hạn dung lượng bộ
nhớ thì người lập trình phải phân chia chương trình của mình thành từng phần tự
loại bỏ nhau (overlays) và phải tự quản lý việc trao đổi thông tin giữa bộ nhớ và
đĩa từ. Bộ nhớ ảo làm nhẹ trách nhiệm của các nhà lập trình bằng cách làm cho
việc trao đổi thông tin này được thực hiện một cách tự động.
<i>Hình 4.18. Một chương trình gồm 4 trang A,B,C,D</i>
Ngồi việc phân chia khơng gian bộ nhớ, cần bảo vệ và quản lý tự động các
cấp bộ nhớ, bộ nhớ ảo đơn giản hố việc nạp chương trình vào bộ nhớ để thi
hành nhờ một cơ chế được gọi là sự tái định địa chỉ (address relocation). Cơ chế
này cho phép một chương trình có thể được thi hành khi nó nằm ở bất cứ vị trí
nào trong bộ nhớ.
<i>Bảng 4.4. Đại lượng điển hình cho bộ nhớ cache và bộ nhớ ảo.</i>
- Khi thất bại cache, sự thay thế một khối trong cache được điều khiển bằng
phần cứng, trong khi sự thay thế trong bộ nhớ ảo là chủ yếu do hệ điều hành.
- Không gian định vị mà bộ xử lý quản lý là không gian định vị của bộ nhớ
ảo, trong lúc đó thì dung lượng bộ nhớ cache khơng tuỳ thuộc vào khơng gian
định vị bộ xử lý.
- Bộ nhớ ngồi cịn được dùng để lưu trữ tập tin ngồi nhiệm vụ là hậu
phương của bộ nhớ trong (trong các cấp bộ nhớ).
Bộ nhớ ảo cũng được thiết kế bằng nhiều kỹ thuật đặc thù cho chính nó.
Các hệ thống bộ nhớ ảo có thể được chia thành 2 loại: loại với khối có dung
lượng cố định gọi là trang, và loại với khối có chiều dài thay đổi gọi là đoạn.
Định vị trang xác định một địa chỉ trong trang, giống như định vị trong cache.
Trong định vị đoạn cần 2 từ: một từ chứa số thứ tự đoạn và một từ chứa độ dời
trong đoạn. Chương trình dịch gặp khó khăn nhiều hơn trong định vị đoạn.
Do việc thay thế các đoạn, ngày nay ít máy tính dùng định vị đoạn thuần tuý.
Một vài máy dùng cách hỗn hợp gọi là đoạn trang. Trong đó mỗi đoạn chứa một
số nguyên các trang. Bây giờ chúng ta trả lời 4 câu hỏi đặt ra trong các cấp bộ
nhớ cho bộ nhớ ảo.
Câu hỏi 1: Một khối được đặt tại đâu trong bộ nhớ trong?
<i>Hình 4.19. Ánh xạ các trang ảo vào bộ nhớ vật lý</i>
Câu hỏi 2: Làm thế nào để tìm một khối khi nó đang nằm trong bộ nhớ trong?
<i>Hình 4.20. Ánh xạ địa chỉ giữa bộ nhớ ảo và bộ nhớ vật lý trong cách định vị đoạn</i>
Hầu hết các hệ điều hành đều cố gắng thay thế khối ít dùng gần đây nhất
(LRU: Least Recent Utilized) vì nghĩ rằng đây là khối ít cần nhất.
Câu hỏi 4: Việc gì xảy ra khi cần ghi số liệu?
Chiến thuật ghi luôn là một sự ghi lại nghĩa là thông tin chỉ được viết vào
trong khối của bộ nhớ trong. Khối có thay đổi thơng tin, được chép vào đĩa từ
nếu khối này bị thay thế.
3. Cách truy xuất dữ liệu trong bộ nhớ
Cache là bộ nhớ nhanh, nó chứa lệnh và dữ liệu thường xuyên dùng đến. Việc
lựa chọn lệnh và dữ liệu cần đặt vào cache dựa vào các nguyên tắc sau đây:
Một chương trình mất 90% thời gian thi hành lệnh của nó để thi hành 10% số
lệnh của chương trình. Nguyên tắc trên cũng được áp dụng cho việc thâm nhập
dữ liệu, nhưng ít hiệu nghiệm hơn việc thâm nhập lệnh. Như vậy có hai ngun
tắc: ngun tắc về khơng gian và nguyên tắc về thời gian
Nguyên tắc về thời gian: cho biết các ô nhớ được hệ thống xử lý thâm
Nguyên tắc về không gian: cho biết, bộ xử lý thâm nhập vào một ô nhớ thì có
nhiều khả năng thâm nhập vào ơ nhớ có địa chỉ kế tiếp do các lệnh được sắp xếp
thành chuỗi có thứ tự. Tổ chức các cấp bộ nhớ sao cho các lệnh và dữ liệu
thường dùng được nằm trong bộ nhớ cache, điều này làm tăng hiệu quả của máy
tính một cách đáng kể.
4. Hiểu về bộ nhớ Cache và cách tổ chức bộ nhớ Cache trong CPU
4.1. Khái niệm: cache hit, cache miss, cache penalty
Ngược lại, Cache Miss (đoán trượt hay thất bại cache) là một sự kiện mà CPU
truy nhập một mục tin và mục tin ấy khơng có ở trong cache. Xác suất của một
miss gọi là hệ số miss, hoặc 1-H. Cũng có thể thấy hệ số miss 1-H thuộc khoảng
(0, 1). Hệ số miss càng thấp thì hiệu quả của cache càng cao. Hay bộ xử lý
không gặp phần tử cần đọc (ghi) trong cache.
Cache Penalty (Trừng phạt thất bại cache): Thời gian cần thiết để xử lý một
thất bại cache. Thời gian bao gồm thời gian thâm nhập bộ nhớ trong cộng với
thời gian chuyển khối chứa từ cần đọc từ bộ nhớ trong đến cache. Thời gian này
tuỳ thuộc vào kích thước của khối.
4.2. Hoạt động
4.2.1. Sắp xếp khối
Một khối bộ nhớ được đặt vào trong cache theo một trong ba cách sau:
- Kiểu tương ứng trực tiếp: Nếu mỗi khối bộ nhớ chỉ có một vị trí đặt khối
duy nhất trong cache được xác định theo cơng thức: K= i mod n Trong đó: K:
vị trí khối đặt trong cache i: số thứ tự của khối trong bộ nhớ trong n: số khối của
cache Như vậy, trong kiểu xếp đặt khối này, mỗi vị trí đặt khối trong cache có
thể chứa một trong các khối trong bộ nhớ cách nhau xn khối (x: 0,1,...,m; n: số
khối của cache)
Ví dụ:
-Kiểu hồn tồn phối hợp: trong kiểu đặt khối này, một khối trong bộ nhớ
trong có thể được đặt vào vị trí bất kỳ trong cache. Như vậy, trong kiểu xếp đặt
khối này, mỗi vị trí đặt khối trong cache có thể chứa một trong tất cả các khối
trong bộ nhớ .
Một khối của bộ nhớ trong có thể được đặt vào một số vị trí khối giới hạn trong
tập hợp được xác định bởi công thức: K= i mod s
Trong đó:
K: vị trí khối đặt trong cache
i: số thứ tự của khối trong bộ nhớ trong
s: số lượng tập hợp trong cache.
Trong cách đặt khối theo kiểu phối hợp theo tập hợp, nếu tập hợp có m khối,
sự tương ứng giữa các khối trong bộ nhớ trong và các khối của cache được gọi
là phối hợp theo tập hợp m khối.
Nếu m=1 (mỗi tập hợp có 1 khối), ta có kiểu tương ứng trực tiếp.
Nếu m=n (n: số khối của cache), ta có kiểu tương hồn toàn phối hợp.
Hiện nay, phần lớn các cache của các bộ xử lý đều là kiểu tương ứng trực tiếp
hay kiểu phối hợp theo tập hợp (mỗi tập hợp gồm 2 hoặc 4 khối).
Ví dụ: Bộ nhớ trong có 32 khối, cache có 8 khối, mỗi khối gồm 32 byte, khối
thứ 12 của bộ nhớ trong được đưa vào cache.
<i>Hình 4.21. Kết quả phối hợp</i>
4.2.2. Nhận diện khối
chứa thông tin mà bộ xử lý cần đọc hay không. Tất cả các nhãn đều được xem
xét song song (trong kiểu tương ứng trực tiếp và phối hợp theo tập hợp) vì tốc
độ là yếu tố then chốt. Để biết xem một khối của của cache có chứa thơng tin mà
bộ xử lý cần tìm hay khơng, người ta thêm một bit đánh dấu (valid bit) vào nhãn
để nói lên khối đó có chứa thơng tin mà bộ xử lý cần tìm hay khơng.
Như đã mơ tả ở phần đầu, với thao tác đọc (ghi) bộ nhớ, bộ xử lý đưa ra một
địa chỉ và nhận (viết vào) một dữ liệu từ (vào) bộ nhớ trong. Địa chỉ mà bộ xử lý
đưa ra có thể phân tích thành hai thành phần: phần nhận dạng số thứ tự khối và
phần xác định vị trí từ cần đọc trong khối. Tương ứng với ba kiểu lắp đặt khối
đã xét, ta có:
a. Căn cứ vào tổ chức số từ trong khối bộ nhớ mà số bit trong địa chỉ xác
định vị trí từ cần đọc trong khối. Cách này đúng với cả ba cách xếp đặt khối đã
xét.
b. Phần nhận dạng số thứ tự khối sẽ khác nhau tuỳ thuộc vào cách xếp đặt
khối, trường chỉ số khối được so sánh với nhãn của cache để xác định khối trong
cache.
Dữ liệu được bộ xử lý đọc cùng lúc với việc đọc nhãn. Phần chỉ số khối của
khối trong bộ nhớ trong được so sánh với bảng tương quan để xác định khối có
nằm trong cache hay khơng. Để chắc rằng nhãn chứa thơng tin đúng đắn (tức là
khối có chứa từ mà bộ xử lý cần đọc-ghi), nếu việc so sánh nhãn của khối cache
giống với số thứ tự khối, bit đánh dấu (Valid bit) phải được bật lên. Ngược lại,
kết quả so sánh được bỏ qua. Bộ xử lý căn cứ vào phần xác định từ trong khối
để đọc (ghi) dữ liệu từ (vào) cache.
- Đối với kiểu tương ứng trực tiếp, phần nhận dạng chỉ số khối được chia
thành hai phần:
+ Phần chỉ số khối cache: chỉ ra số thứ tự khối cache tương ứng cần xem xét.
+ Phần nhãn: so sánh tương ứng với nhãn của khối cache được chỉ ra bởi phần
chỉ số khối.
Chỉ số khối trong bộ nhớ Địa chỉ từ cần đọc
trong khối
- Đối với kiểu hoàn toàn phối hợp, phần nhận dạng chỉ số khối trong địa chỉ
sẽ được so sánh với nhãn của tất cả các khối cache.
Chỉ số khối trong bộ nhớ Địa chỉ từ cần đọc trong khối
-Đối với kiểu phối hợp theo tập hợp, phần nhận dạng chỉ số khối được chia
thành hai phần:
+ Phần chỉ số tập hợp: chỉ ra số thứ tự tập hợp trong cache cần xem xét.
+ Phần nhãn: so sánh tương ứng với nhãn của các khối cache thuộc tập hợp
được chỉ ra bởi phần chỉ số tập hợp.
Chỉ số khối trong bộ nhớ Địa chỉ từ cần đọc
trong khối
Nhãn Chỉ số tập hợp
Ví dụ: phân tích địa chỉ một từ trong được cho ở trên, địa chỉ xác định một từ
trong bộ nhớ có 10 bit, tuỳ theo cách xếp đặt khối mà ta có thể phân tích địa chỉ
này thành các thành phần như sau:
- Đối với kiểu tương ứng trực tiếp:
- Đối với kiểu hoàn toàn phối hợp:
- Đối với kiểu phối hợp theo tập hợp, giả sử cache gồm 4 tập hợp, mỗi tập
hợp gồm hai khối:
Khi có thất bại cache, bộ điều khiển cache thâm nhập bộ nhớ trong và chuyển
khối mà bộ xử lý cần đọc (ghi) vào cache. Như vậy, khối nào trong cache sẽ bị
thay thế bới khối mới được chuyển lên. Đối với kiểu tương ứng trực tiếp, vị trí
đặt khối khơng có sự lựa chọn, nó được xác định bởi trường chỉ số khối cache
trong địa chỉ của từ cần đọc (ghi). Nếu cache là kiểu hoàn toàn phối hợp hay
phối hợp theo tập hợp thì khi thất bại phải chọn lựa thay thế trong nhiều khối.
Có bốn chiến thuật chủ yếu dùng để chọn khối thay thế trong cache:
- Thay thế ngẫu nhiên: để phân bố đồng đều việc thay thế, các khối cần thay
thế trong cache được chọn ngẫu nhiên.
- Khối xưa nhất (LRU: Least Recently Used): các khối đã được thâm nhập sẽ
- Vào trước ra trước (FIFO: First In First Out): Khối được đưa vào cache đầu
tiên, nếu bị thay thế, khối đó sẽ được thay thế trước nhất.
- Tần số sử dụng ít nhất (LFU: Least Frequently Used): Khối trong cache
được tham chiếu ít nhất
Điều này sử dụng hệ quả của nguyên tắc sử dụng ô nhớ theo thời gian: nếu
các khối mới được dùng có khả năng sẽ được dùng trong tương lai gần, khối bị
thay thế là khối không dùng trong thời gian lâu nhất.
4.2.4. Chiến thuật ghi
Đối với việc ghi vào bộ nhớ thì khơng giống như trên, việc thay đổi nội dung
của một khối không thể bắt đầu trước khi nhãn được xem xét để biết có thành
cơng hay thất bại. Thao tác ghi vào bộ nhớ sẽ tốn nhiều thời gian hơn thao tác
đọc bộ nhớ. Trong việc ghi bộ nhớ cịn có một khó khăn khác là bộ xử lý cho
biết số byte cần phải ghi, thường là từ 1 đến 8 byte. Để đảm bảo đồng nhất dữ
liệu khi lưu trữ, có hai cách chính để ghi vào cache:
- Ghi đồng thời: Thông tin được ghi đồng thời vào khối của cache và khối của
bộ nhớ trong. Cách ghi này làm chậm tốc độ chung của hệ thống. Các ngoại vi
có thể truy cập bộ nhớ trực tiếp
- Ghi lại: Để đảm bảo tốc độ xử lý của hệ thống, thông tin cần ghi chỉ được
ghi vào khối trong cache. Để quản lý sự khác biệt nội dung giữa khối của cache
và khối của bộ nhớ trong, một bit trạng thái (Dirty bit hay Update bit) được
dùng để chỉ thị. Khi một thao tác ghi vào trong cache, bit trạng thái (Dirty bit
hay Update bit) của khối cache sẽ được thiết lập. Khi một khối bị thay thế, khối
Khi có một thất bại ghi vào cache thì phải lựa chọn một trong hai giải pháp
sau:
- Ghi có nạp: khối cần ghi từ bộ nhớ trong được nạp vào trong cache như mô
tả ở trên. Cách này thường được dùng trong cách ghi lại.
- Ghi không nạp: khối được thay đổi ở bộ nhớ trong không được đưa vào
cache. Cách này được dùng trong cách ghi đồng thời.
Trong các tổ chức có nhiều hơn một bộ xử lý với các tổ chức cache và bộ nhớ
chia sẻ, các vấn đề liên quan đến tính đồng nhất của dữ liệu cần được đảm bảo.
Sự thay đổi dữ liệu trên một cache riêng lẻ sẽ làm cho dữ liệu trên các hệ thống
cache và bộ nhớ liên quan khơng đồng nhất. Vấn đề trên có thể được giải quyết
bằng một trong các hệ thống cache tổ chức như sau:
nó quản lý, bộ điều khiển cache sẽ vơ hiệu hố sự thâm nhập này. Chiến lược
này phụ thuộc vào cách ghi đồng thời trên tất cả các bộ điều khiển cache.
+ Một vi mạch được dùng để điều khiển việc cập nhật, một thao tác ghi vào
bộ nhớ từ một cache nào đó sẽ được cập nhật trên các cache khác.
+ Một vùng nhớ chia sẻ cho một hay nhiều bộ xử lý thì khơng được ánh xạ
lên cache. Như vậy, tất cả các thâm nhập vào vùng nhớ chia sẻ này đều bị thất
bại cache.
4.3. Các mức Cache
Việc dùng cache trong có thể làm cho sự cách biệt giữa kích thước và thời
gian thâm nhập giữa cache trong và bộ nhớ trong càng lớn. Người ta đưa vào
nhiều mức cache:
- <i>Cache mức một (L1 cache): thường là cache trong (on-chip cache; nằm bên</i>
trong CPU)
- <i>Cache mức hai (L2 cache) thường là cache ngoài (off-chip cache; cache</i>
này nằm bên ngồi CPU).
<i>Bảng 4.5. Kích thước cache của một số hệ thống</i>
a. Hai giá trị cách nhau bởi dấu “/” chỉ giá trị cache lệnh và cache dữ liệu
b. Cả hai giá trị đều là cache lệnh
4.4. Hiệu quả của Cache
Thông thường người ta dùng thời gian thâm nhập trung bình bộ nhớ trong để
đánh giá hiệu quả của cache.
Thời gian thâm nhập trung bình được cho bởi cơng th c:ứ
Thời gian thâm
nhập trung bình bộ
nhớ
= Thời gian
thâm nhập thành
công
+ Tỉ
lệ thất
bại
Trong việc tìm kiếm thơng tin trong cache phải chú ý làm giảm tỉ lệ thất bại
mà các nguyên nhân chính là như sau:
- Khởi động: trong lần thâm nhập cache đầu tiên, khơng có thơng tin cần tìm
trong cache nên phải chuyển khối chứa thơng tin đó vào cache.
- Khả năng: vì cache khơng thể chứa tất cả các khối cần thiết cho việc thi
hành một chương trình nên gặp thất bại do cache thiếu khả năng, do đó một khối
bị lấy ra khỏi cache rồi lại được đưa vào sau này.
- Tranh chấp: Nếu chiến thuật thay thế các khối là phối hợp theo tập hợp hay
tương ứng trực tiếp, các thất bại do tranh chấp xảy ra vì một khối có thể bị đưa
ra khỏi cache rồi được gọi vào sau đó nếu có nhiều khối phải được thay thế
trong các tập hợp.
CÂU HỎI ÔN TẬP
<b>1.</b>Thế nào là bộ nhớ?
<b>2.</b>Bộ nhớ có mấy loại, các các loại bộ nhớ Ram nào và dựa theo thơng số gì
ta phân loại ram.
<b>3.</b>Phân biệt được các loại Ram.
<b>4.</b>Trình bày và phân biệt được bộ nhớ ảo và bộ nhớ .
<i><b>5.</b></i>Cách truy xuất dữ liệu trong bộ nhớ.
<b>CHƯƠNG 5: THIẾT BỊ NHẬP XUẤT</b>
<b>Mã chương : 12.05</b>
<b>Giới thiệu :</b>
Bài giới thiệu về các thiết bị xuất nhập của máy tính và thiết bị lưu trữ các
chuẩn về bus, Các loại thẻ và các khái nieemk cơ bản về chuẩn và an toàn dữ
liệu của máy tính
<b>Mục tiêu: </b>
+ Trình bày được cấu tạo và cách vận hành của các loại thiết bị lưu trữ
+ Trình bày được các phương pháp để đảm bảo an tồn dữ liệu lưu trữ
+ Trình bày được các kiến thức về hệ thống kết nối cơ bản, các bộ phận bên
trong máy tính, cách giao tiếp giữa các thiết bị ngoại vi và bộ xử lý.
+ Rèn luyện cách tư duy, suy luận chặt chẽ, có cơ sở khoa học
<b>Nội dung chính:</b>
1. Đĩa từ.
1.1. Giới thiệu.
Đĩa từ (Magnetic Disks) là một trong các loại thiết bị lưu trữ được sử dụng
rộng rãi nhất trong các thiết bị tính tốn nói chung và các máy tính cá nhân nói
riêng. Đĩa từ thuộc loại bộ nhớ ổn định – thông tin lưu trên đĩa từ luôn được duy
trì, khơng phụ thuộc vào nguồn điện ni bên ngồi. Đĩa từ cũng là bộ nhớ kiểu
khối có dung lượng lớn, đặc biệt là các đĩa cứng, dùng để lưu trữ thông tin lâu
dài dưới dạng các tệp (files). Để lưu được thông tin, đĩa từ sử dụng các đĩa nhựa
hoặc đĩa kim loại có phủ lớp bột từ trên bề mặt. Bột từ được sử dụng thường là
<i>Hình 5.1 Đĩa mềm và ổ đĩa mềm kích thước 3,5 inches</i>
Khác với đĩa mềm, đĩa cứng thường được gắn cố định trong ổ đĩa và được
bọc trong một hộp kim loại bảo vệ như minh hoạ trên hình Hình 5.2. Đĩa cứng
được làm bằng kim loại hoặc bằng thuỷ tinh, có dung lượng lớn và tốc độ cao
hơn nhiều lần so với đĩa mềm. Hiện nay, các ổ đĩa cứng thườngcó dung lượng
rất lớn, từ vài chục gigabyte đến hàng ngàn gigabyte và là thiết bị lưu trữ chủ
yếu của các hệ thống máy tính. Do đĩa từ mềm ngày càng ít được sử dụng, phần
tiếp theo của chương này chỉ đề cập đến đĩa từ cứng và ổ đĩa cứng.
<i>Hình 5.2. Ổ đĩa cứng kích thư ớc 3,5 inches</i>
1.2. Đĩa cứng
<i>Hình 5.3. Các thành phần của đĩa cứng</i>
<i>Hình 5.4. Hệ thống đĩa và đầu từ đọc/ghi đĩa cứng</i>
Rãnh có dạng là một đường trịn đồng tâm trên mặt đĩa để lưu thông tin. Các
rãnh được đánh số từ 0 theo trật từ từ phía ngồi đĩa vào trong tâm và mỗi mặt
đĩa có thể chứa hàng ngàn rãnh. Tiếp theo rãnh, mặt trụ là tập hợp của các rãnh
ở các mặt đĩa khác nhau nằm trên cùng một vị trí đầu từ. Trên thực tế, mặt trụ là
tham số được sử dụng nhiều hơn rãnh trong các hệ thống đĩa cứng. Cung là một
phần của rãnh trên bề mặt đĩa và là đơn vị lưu trữ nhỏ nhất có thể quản lý của
đĩa. Kích thư ớc thông dụng của mỗi cung là 512 bytes. Với ổ đĩa cứng, ba tham
số được sử dụng để tính dung lượng đĩa là: Số lượng mặt trụ (C), số lượng
Dung lượng của đĩa cứng = C x H x S x 512 bytes
1.2.2. Các chuẩn ghép nối đĩa cứng
Các chuẩn hay giao diện ghép nối ổ đĩa cứng giải quyết vấn đề các ổ đĩa cứng
được ghép nối và trao đổi dữ liệu với CPU như thế nào. Cho đến hiện nay, các
giao diện thông dụng ghép nối ổ đĩa cứng với máy tính gồm: (1) Parallel ATA
(PATA - Parallel Advanced Technology Attachments), còn gọi là
SCSI – Small Computer System Interface (phát âm là scuzzy /skʌzi/), (4) Serial
Attached SCSI (SAS) và (5) iSCSI – Internet SCSI. Trong tài liệu này, ta đề cập
chi tiết ba chuẩn ghép nối thơng dụng nhất cho máy tính là PATA/ATA/IDE,
SATA và SCSI.
Chuẩn ghép nối ATA/IDE/PATA
<i>Hình 5.5. Giao diện ghép nối và cáp ATA/IDE/PATA</i>
<i>Hình 5.6. IDE HDD jumpers & cài đặt jumpers</i>
Chuẩn ghép nối ATA/IDE/PATA sử dụng cáp dẹt 40 hoặc 80 sợi để ghép nối
ổ cứng với bảng mạch chính của máy tính. Mỗi cáp thườnghỗ trợ ghép nối với 2
ổ đĩa: một ổ đĩa chủ (master) và một ổ đĩa tớ (slave). Băng thơng đường truyền
là 16 bít, đạt các mức thông lượng theo tần số làm việc: 16, 33, 66, 100 và
133MB/s. Hình 5.5 minh hoạ khe cắm, cáp ghép nối và các chuyển mạch chế độ
làm việc (jumpers) của ổ đĩa chuẩn ATA/IDE/PATA.
<i>Hình 5.7. Khe cắm và cáp ghép nối SATA</i>
Hình 5.6 minh hoạ các thành phần ghép nối ổ đĩa cứng với bảng mạch chính
theo chuẩn SATA. Chuẩn SATA sử dụng cùng tập lệnh mức thấp như chuẩn
ATA như ng SATA sử dụng đường truyền tin nối tiếp tốc độ cao qua 2 đôi dây
với bộ điều khiển SATA sử dụng chuẩn AHCI (Advanced Host Controller
Interface). SATA hỗ trợ nhiều tính năng tiên tiến vượt trội so với ATA, như
truyền dữ liệu nhanh và hiệu quả hơn và đặc biệt là tính năng cắm nóng (hot
plug). SATA cung cấp tốc độ truyền dữ liệu cao hơn nhiều so với ATA. Với
SATA thế hệ 1, tốc độ đạt 1,5 Gb/s và lần lượt đạt 3,0 Gb/s và 6,0 Gb/s với các
thế hệ 2 và thế hệ 3.
Chuẩn ghép nối SCSI SCSI là một tập các chuẩn về kết nối vật lý và truyền
dữ liệu giữa máy tính và thiết bị ngoại vi, thườngđược sử dụng trong các máy
chủ. Tất cả các thiết bị SCSI đều kết nối đến bus SCSI theo cùng một kiểu và
mỗi bus SCSI có thể kết nối 8-16 thiết bị SCSI. Tương tự SATA, chuẩn SCSI
cũng cung cấp nhiều tính năng tiên tiến như tốc độ truyền dữ liệu và tính ổn
định rất cao và tính năng cắm nóng. Tính năng cắm nóng rất hữu dụng trong các
máy chủ do SCSI cho phép thêm, bớt các ổ cứng mà không phải tắt máy, giảm
thời gian ngừng cung cấp dịch vụ. SCSI đạt được tốc độ truyền dữ liệu: 5, 10,
20, 40MB/s với các ổ SCSI cũ và 160, 320, 640 MB/s với các ổ SCSI mới. Các
ổ cứng SCSI thườngrất đắt tiền và được thườngđược sử dụng cho các máy chủ
và các hệ thống lưu trữ tiên tiến như RAID, NAS và SAN.
Các đĩa cứng được quản lý theo hai mức: mức thấp (lower level) và mức cao
(high level). Quản lý đĩa ở mức thấp được thực hiện bởi các chức năng của
ROM-BIOS, đĩa được quản lý ở mức cao bởi hệ điều hành. Các vấn đề liên
quan đến quản lý đĩa cứng gồm: định dạng đĩa cứng, phân khu và bảng phân khu
đĩa cứng, cung khởi động, hệ thống file và thư mục gốc.
Định dạng đĩa cứng Đĩa cứng cần được định dạng (format) trước khi sử dụng.
Phân khu và bảng phân khu đĩa cứng Một đĩa cứng vật lý có thể được chia
thành nhiều phần để thuận tiện cho quản lý và lưu trữ. Mỗi phần được gọi là
một phân đoạn hay một phân khu (partition). Có hai loại phân khu: phân khu
chính (primary partition) và phân khu mở rộng (extended partition). Thông thư
ờng, mỗi ổ đĩa chỉ có thể có một phân khu chính và một hoặc một số phân khu
mở rộng. Một phân khu lại có thể được chia thành một hoặc một số ổ đĩa logic.
Phân khu chính chỉ có thể chứa duy nhất một ổ đĩa logic, như ng phân khu mở
rộng có thể được chia thành một hoặc một số ổ đĩa logic. Bảng phân khu
(partition table) là một bảng gồm các bản ghi lưu thông tin quản lý các phân khu
đĩa cứng. Các thông tin cụ thể về mỗi phân khu như sau:
Phân khu có thuộc loại tích cực (active) ?
<b>-</b> Số mặt trụ (C), đầu từ (H) và cung (S) điểm bắt đầu phân khu.
<b>-</b> Số mặt trụ (C), đầu từ (H) và cung (S) điểm kết thúc phân khu.
<b>-</b> Kiểu định dạng phân khu (FAT, NTFS, EXT).
<b>-</b> Kích thước của phân khu tính theo số cung.
loader) có nhiệm vụ kích hoạt việc nạp các thành phần của hệ điều hành từ đĩa
vào bộ nhớ.
Hệ thống file (file system) là một dạng bảng danh mục (directory) để quản lý
việc lưu trữ các files trên đĩa. Các files thườngđược lưu trữ trong các thư mục
(folders) và các thư mục được tổ chức theo mơ hình cây. Hệ thống file là một
thành phần của hệ điều hành và có thiết kế khác khác nhau. Sau đây là một số hệ
thống file thông dụng kèm theo hệ điều hành:
<b>-</b> FAT (DOS, Windows 3.x, Windows 95, 98, ME, Windows NT, 2000, XP)
<b>-</b> NTFS (Windows NT, 2000, XP, 2003, Vista, 7)
<b>-</b> Ext2, Ext3 (Unix, Linux)
<b>-</b> MFS (Macintosh FS)/HFS (Hierarchical FS) (Mac OS)
Thư mục gốc (Root directory) là thư mục ở mức thấp nhất trong hệ thống
cây thư mục của ổ đĩa logic. Thư mục gốc là điểm bắt đầu khi hệ thống tìm
kiếm và truy nhập file. Cũng như các thư mục khác, thư mục gốc có thể chứa
các thư mục con và các file. Điểm khác biệt của thư mục gốc với các thư mục
khác là nó khơng có thư mục mẹ.
2. Đĩa quang
2.1. Giới thiệu và nguyên lý
Đĩa quang (Optical Disks) hoạt động dựa trên nguyên lý quang học: sử dụng
ánh sáng để đọc và ghi thông tin trên đĩa. Các đĩa quang thường được chế tạo
bằng plastic với một mặt được tráng một lớp nhôm mỏng để phản xạ tia laser.
Mặt đĩa quang được “khắc” rãnh và mức lõm của rãnh được sử dụng để biểu
diễn các bit thông tin, như minh hoạ trên Hình 5.7. Trên thực tế, các đĩa quang
âm nhạc và phim được chế tạo hàng loạt theo kiểu chế bản in gồm 2 khâu:
Trước hết, tạo bản đĩa chủ chứa thông tin ở dạng “âm bản” bằng thiết bị chuyên
Bước 2. Gương quay được điều khiển bởi tín hiệu đọc, lái tia laser đến vị trí
cần đọc trên mặt đĩa;
Bước 3. Tia phản xạ từ mặt đĩa phản ánh mức lồi lõm trên mặt đĩa quay trở
lại gương quay;
Bước 4. Gương quay chuyển tia phản xạ về bộ tách tia và sau đó đến bộ cảm
biến quang điện;
Bước 5. Bộ cảm biến quang điện chuyển đổi tia laser phản xạ thành tín hiệu
điện đầu ra. Cường độ của tia laser được biểu diễn thành mức tín hiệu ra.
<i>Hình 5.8. Lưu thơng tin trên đĩa quang</i>
Có hai họ đĩa quang chính: đĩa CD (Compact Disk) và đĩa DVD (Digital
Video Disk). Đĩa CD ra đời trước có dung lượng nhỏ, tốc độ chậm, thườngđược
sử dụng để lưu dữ liệu, âm thanh và phim ảnh có chất lượng thấp. Đĩa DVD ra
đời sau, có dung lượng lớn, tốc độ truy nhập cao và cho phép lưu dữ liệu, âm
thanh và phim ảnh có chất lượng cao hơn.
Họ đĩa CD gồm 3 loại chính: đĩa CD chỉ đọc (CD-ROM - Read Only CD),
đĩa CD có thể ghi 1 lần R - Recordable CD) và đĩa CD có thể ghi lại
(CD-RW - Rewritable CD). Đĩa CDROM được ghi sẵn nội dung từ khi sản xuất và
chỉ có thể đọc ra trong q trình sử dụng. CDROM thườngđược sử dụng để lưu
âm nhạc và các phần mềm. Đĩa CD-R là đĩa có thể ghi một lần duy nhất bởi
Người sử dụng. Sau khi thông tin được ghi, đĩa trở thành loại chỉ đọc. Ngược
Tương tự họ CD, họ DVD cũng gồm nhiều loại: đĩa DVD chỉ đọc
(DVD-ROM - Read Only DVD), đĩa có thể ghi 1 lần (DVD-R - Recordable DVD), đĩa
có thể ghi lại (DVDRW Rewritable DVD), đĩa DVD mật độ cao (HDDVD
-High-density DVD) và đĩa DVD mật độ siêu cao (Blu-ray DVD - Ultra-high
density DVD). DVD-ROM thườngđược sử dụng để lưu phim ảnh và các phần
mềm có dung lượng lớn. Đĩa DVD-R là đĩa có thể ghi một lần duy nhất bởi
Người sử dụng. Sau khi thông tin được ghi, đĩa trở thành loại chỉ đọc. Ngược
lại, đĩa DVD-RW cho phép xố thơng tin đã ghi và ghi lại nhiều lần. Đĩa
HD-DVD và Blu-ray HD-DVD là các loại đĩa HD-DVD có dung lượng siêu cao với dung
lương tương ứng vào khoảng 15GB và 25GB với đĩa một lớp.
2.3. Giới thiệu cấu tạo một số đĩa quang thông dụng
2.3.1. Đĩa CD-ROM, CD-R và CD-RW
600 KB/s; nếu đĩa có tốc độ đọc 50x thì tốc độ tối đa có thể đọc là 50 x 150KB/s
= 7500 KB/s.
<i>Hình 5.9. Cấu tạo đĩa CD-R</i>
Đĩa CD-R về mặt hình thức và cấu tạo tương tự đĩa CD-ROM. Tuy nhiên,
đĩa CD-R có thêm một lớp gọi là “organic dye”, tạm dịch là lớp hữu cơ nằm
giữa lớp plastic và lớp phản xạ bằng kim loại. Tia laser đã được điều chế bởi tín
hiệu ghi được sử dụng để “đốt” lớp hữu cơ tạo thành các mức lồi lõm khác nhau
trên lớp này để lưu thông tin. Sau khi đốt lớp hữu cơ bị cố định và do vậy đĩa
CD-R chỉ ghi được 1 lần. Trong đĩa CD-RW, lớp hữu cơ được thay bằng một
lớp bán kim loại. Nhờ vậy, đĩa CD-RW có thể ghi được nhiều lần. Đa số các đĩa
CD-RW cho phép ghi lại đến khoảng 1000 lần.
2.3.2. Đĩa DVD-ROM, DVD-R và DVD-RW
<i>Hình 5.10. Mật độ ghi thơng tin trên đĩa CD và DVD</i>
<i>Hình 5.11. Cấu tạo đĩa DVD-R</i>
<i>Hình 5.12. Cấu tạo đĩa DVD-RW</i>
2.3.3. Đĩa HD-DVD và Blu-ray DVD
Đĩa HD-DVD và Blu-ray DVD là các “siêu” đĩa quang với dung lượng rất
lớn và tốc độ truy nhập cao. Đĩa HD-DVD do Toshiba phát minh, sử dụng tia
laser xanh với bước sóng rất ngắn. Đĩa HD-DVD đạt dung lượng 15GB cho một
lớp và 30GB cho hai lớp. Do thất bại trong cạnh tranh với đĩa Blu-ray DVD, nên
đĩa HD-DVD đã phải ngừng sản xuất từ tháng 2 năm 2008. Đĩa Blu-ray DVD do
Sony phát minh, sử dụng tia laser với bước sóng 405nm. Đĩa Blu-ray DVD đạt
dung lượng 30GB cho một lớp và 50GB cho hai lớp.
3. Các loại thẻ nhớ
3.1. Khái niệm
<i>Hình 5.13. Các loại thẻ nhớ hiện nay</i>
3.2. Phân loại
3.2.1. Thẻ nhớ đa phương tiện (Multimedia Card):
<i>Hình 5.14. Thẻ nhớ đa phương tiện Multimedia Card</i>
Dòng thẻ nhớ Multimedia Card hay còn được gọi tắt là “MMC” được xem như
3.2.2. Thẻ nhớ SD (SanDisk TransFlash):
<i>Hình 5.15. Những dòng thẻ nhớ SD</i>
Dòng thẻ nhớ SD được tập đoàn SanDisk nghiên cứu phát triển và sản xuất từ
năm 2000 đây cũng được xem là loại thẻ đang được phổ biến nhất trên thị
trường thẻ nhớ chuyên dùng với những thiết bị công nghệ di động cao cấp. Đa
số những chiếc Smartphone hay máy tính bảng ngày nay điều hỗ trợ khe cắm thẻ
nhớ SD nên bạn phải tìm hiểu kỹ chúng tích hợp dịng thẻ nhớ SD nào để chọn
lựa thẻ cho tương thích.
+ Thẻ nhớ SD: do hãng SanDisk nghiên cứu và sản xuất vào 28/01/2000 được
hiệp hội thẻ SDA đánh giá đạt tiêu chuẩn kỹ thuật cao, thẻ SD có thể tích hợp
tới 4GB dung lượng để tăng khả năng lưu trữ bạn có thể sử dụng thẻ SDHC với
32GB dung lượng. Những thẻ SD đều sử dụng được với các thiết bị hỗ trợ thẻ
SDHC nhưng đơi khi ngược lại thì thẻ SDHC khơng tích hợp được với thẻ SD.
<i>Hình 5.17. Thẻ nhớ SDHC</i>
Thẻ nhớ SDHC: Thẻ nhớ loại SDHC khá phổ biến hiện nay, thường được dùng
trong camera, máy quay phim, các thẻ SDHC có dung lượng cao, hỗ trợ khá tốt
các định dạng phổ biến trên máy tính nên dễ dàng kết nối với máy tính. Thẻ
SDHC khơng tương thích ngược với các thiết bị chỉ hỗ trợ thẻ SD.
+Thẻ miniSD: được tập đoàn SanDisk sản xuất vào ngày 13/03/2003 là một
phiên bản thu nhỏ của dòng thẻ SD với kích thước 21.5 × 20 × 1.4 mm, ta
thường thấy thẻ miniSD được sử dụng nhiều trong điện thoại hay máy nghe
nhạc, thẻ miniSD cũng được dùng với 1 đầu đọc thẻ và sử dụng chung với khe
cắm thẻ SD. Tương tự như thẻ SDHC, thẻ miniSDHC sở hữu dung lượng lớn
hơn thẻ miniSD.
<i>Hình 5.19. Thẻ nhớ microSD</i>
+Thẻ microSD: được thương mại hóa trên tồn thế giới vào năm 2008 với kích
thước 15 × 11 × 0.7mm (nhỏ bằng móng tay cái) và nhỏ hơn cả thẻ miniSD , thẻ
nhớ microSD được phổ biến trên các thiết bị như Smartphone, máy nghe nhạc,
máy ảnh…Thẻ nhớ microSD chỉ chứa được 2GB nhưng thẻ microSDHC lưu trữ
được 32GB dung lượng.
+Thẻ nhớ SDXC: Thẻ nhớ SDXC có thể chứa được đến 128GB dung lượng.
Dòng thẻ này cũng cần khe cắm thẻ SDXC chuyên dụng để có thể truyền tải dữ
liệu được.
<i>Hình 5.21. Thẻ nhớ xD</i>
+Thẻ nhớ xD: Dòng thẻ này được phổ biến dùng lưu trữ hình trên những chiếc
máy ảnh của các thương hiệu máy ảnh nhất định. Vì khơng phải các thẻ nhớ xD
đều hỗ trợ với tất cả máy ảnh, bạn nên kiểm tra kỹ thiết bị sắp mua. Thẻ xD
cũng có nhiều định dạng như M, H và M+.
3.2.3. Thẻ nhớ CompactFlash (CF)
Trên thị trường hiện nay có một vài dòng máy ảnh và máy quay phim sử dụng
loại thẻ nhớ CF với dung lượng lên tới 64GB, nhưng phổ biến nhất vẫn là các
3.3. Khái niệm cơ bản về các chuẩn tốc độ
- Speed X: Speed X là cách đo tốc độ cho các chuẩn thẻ SD/ MicroSD. Tốc
độ speed X là hiển thì tốc độ đọc cao nhất có thể trong điều kiện tốt nhất. 1x
speed = 150KB/s
VD: Trên thẻ nhớ ghi tốc độ 45x, chúng ta có thể hiểu rằng tốc độ đọc cao nhất
của thẻ nhớ là 45 x 150 = 6.75MB/s
- Speed Class: Speed Class là cấp độ của tốc độ thẻ nhớ, cách tính tốc độ
của chuẩn này ngược với Speed X ở chỗ nó đo tốc độ ghi tối thiểu. Nghĩa là tốc
độ ghi thấp nhất phải đạt.
VD: Trên thẻ ghi Class 2 đồng nghĩa với tốc độ ghi tối thiểu là 2MB/s
- UHS Speed Class: Đây là chuẩn tốc độ cho công nghệ thẻ SD3.0 với tốc
độ và mức độ hỗ trợ cực cao cho những bức ảnh lớn (RAW) hoặc phim có độ
phân giải cực cao. Tốc độ giao tiếp dữ liệu của chuẩn UHS có thể đạt tới: <b></b>
<b>UHS-I ~ 10MB/s; UHS-UHS-IUHS-IUHS-I ~ 30MB/s.</b>
4. Băng từ
Băng từ có cùng cơng nghệ với các đĩa từ nhưng khác đĩa từ hai điểm:
Việc thâm nhập vào đĩa từ là ngẫu nhiên còn việc thâm nhập vào băng từ là
- Đĩa từ có dung lượng hạn chế cịn băng từ gồm có nhiều cuộn băng có thể lấy
dự phịng.
Các băng từ có chiều rộng thay đổi từ 0,38cm đến 1,27 cm được đóng thành
cuộn và được chứa trong một hộp bảo vệ. Dữ liệu ghi trên băng từ có cấu trúc
gồm một số các rãnh song song theo chiều dọc của băng.
Có hai cách ghi dữ liệu lên băng từ:
Ghi nối tiếp: với kỹ thuật ghi xoắn ốc, dữ liệu ghi nối tiếp trên một rãnh
của băng từ, khi kết thúc một rãnh, băng từ sẽ quay ngược lại, đầu từ sẽ ghi dữ
liệu trên rãnh mới tiếp theo nhưng với hướng ngược lại. Quá trình ghi cứ tiếp
diễn cho đến khi đầy băng từ.
Ghi song song: để tăng tốc độ đọc-ghi dữ liệu trên băng từ, đầu đọc - ghi
có thể đọc-ghi một số rãnh kề nhau đồng thời. Dữ liệu vẫn được ghi theo chiều
dọc băng từ nhưng các khối dữ liệu được xem như ghi trên các rãnh kề nhau. Số
rãnh ghi đồng thời trên băng từ thông thường là 9 rãnh (8 rãnh dữ liệu - 1byte và
một rãnh kiểm tra lỗi).
5. Các chuẩn về BUS
Số lượng và chủng loại các bộ phận vào/ra không cần định trước trong
các hệ thống xử lý thông tin. Điều này giúp cho người sử dụng máy tính dùng
bộ phận vào/ra nào đáp ứng được các yêu cầu của họ. Vào/ra là giao diện trên
đó các bộ phận (thiết bị) được kết nối vào hệ thống. Nó có thể xem như một bus
liên quan đến các máy vi tính). Các chuẩn về bus phải được các cơ quan về
chuẩn như ISO, ANSI và IEEE công nhận.
5.1. Bus nối ngoại vi vào bộ xử lý và bộ nhớ trong
Trong máy tính, bộ xử lý và bộ nhớ trong liên lạc với các ngoại vi bằng
bus. Bus là một hệ thống các dây cáp nối (khoảng 50 đến 100 sợi cáp riêng biệt)
trong đó một nhóm các cáp được định nghĩa chức năng khác nhau bao gồm: các
đường dữ liệu, các đường địa chỉ, các dây điều khiển, cung cấp nguồn. Dùng
bus có 2 ưu điểm là giá tiền thấp và dễ thay đổi ngoại vi. Người ta có thể gỡ bỏ
một ngoại vi hoặc thêm vào ngoại vi mới cho các máy tính dùng cùng một hệ
thống bus.
Giá tiền thiết kế và thực hiện một hệ thống bus là rẻ, vì nhiều ngã vào/ra
cùng chia sẻ một số đường dây đơn giản. Tuy nhiên, điểm thất lợi chính của bus
là tạo ra nghẽn cổ chai, điều này làm giới hạn lưu lượng vào/ra tối đa. Các hệ
thống máy tính dùng cho quản lý phải dùng thường xun các ngoại vi, nên khó
khăn chính là phải có một hệ thống bus đủ khả năng phục vụ bộ xử lý trong việc
liên hệ với các ngoại vi.
Một trong những lý do khiến cho việc thiết kế một hệ thống bus khó khăn là tốc
độ tối đa của bus bị giới hạn bởi các yếu tố vật lý như chiều dài của bus và số bộ
<i>Hình 5.23. Hệ thống bus trong một máy tính</i>
Hiện nay, trong một số hệ thống máy tính, bus nối ngoại vi được phân cấp
thành hai hệ thống bus con. Trong đó, bus tốc độ cao (high-speed bus) hỗ trợ kết
nối các thiết bị tốc độ cao như SCSI, LAN, Graphic, Video,.. .và hệ thống bus
mở rộng (expansion bus) được thiết kế để kết nối với các ngoại vi yêu cầu tốc
độ thấp như: modem, cổng nối tiếp, cổng song song,.. .Giữa hai hệ thống bus
nối ngoại vi trong tổ chức hệ thống bus phân cấp là một giao diện đệm (hình
5.19).
<i>Hình 5.25. Bảng biểu diễn tốc độ dữ liệu của các ngoại vi</i>
<i>Bảng 5.3. Các lựa chọn chính yếu cho một bus</i>
Ta có thể có nhiều lựa chọn trong việc thiết kế một bus, như trong bảng 5.3.
Trong bảng 5.3 có khái niệm sau đây liên quan đến các <i>chủ nhân của bus</i> - các
bộ phận có thể khởi động một tác vụ đọc hoặc viết trên bus. Ví dụ bộ xử lý ln
là một chủ nhân của bus.
bus. Một bus có nhiều chủ, có thể cấp một dãi thơng rộng (bandwidth) bằng
cách sử dụng các gói tin thay vì dùng bus cho từng tác vụ riêng lẻ. Kỹ thuật sử
dụng gói tin được gọi là phân chia nhỏ tác vụ (dùng bus chuyển gói). Một tác vụ
đọc được phân tích thành một tác vụ yêu cầu đọc (tác vụ này chứa địa chỉ cần
đọc), và một tác vụ trả lời của bộ nhớ (chứa thông tin cần đọc). Mỗi tác vụ đều
có một nhãn cho biết loại của tác vụ. Trong kỹ thuật phân chia nhỏ tác vụ, trong
khi bộ nhớ đọc các thông tin ở địa chỉ đã xác định thì bus được dành cho các
chủ khác.
Bus hệ thống là một bus đồng bộ, nó gồm có một xung nhịp trong các
Ngược lại, các bus vào/ra thuộc loại bus bất đồng bộ, các bus này khơng
có xung nhịp đồng bộ trong hệ thống bus. Thay vào đó có các nghi thức bắt tay
với các quy định riêng về thời gian, được dùng giữa các bộ phận phát và bộ
phận thu của bus. Bus bất đồng bộ rất dễ thích ứng với nhiều ngoại vi và cho
phép nối dài bus mà khơng phải lo ngại gì đến vấn đề đồng bộ. Bus bất đồng bộ
cũng dễ thích ứng với những thay đổi công nghệ.
5.2. Giao tiếp giữa bộ xử lý với các bộ phận nhập xuất.
Bộ xử lý dùng 2 cách để liên lạc với các bộ phận vào ra:
<i>Cách thứ nhất,</i> thường được dùng: là cách dùng một vùng địa chỉ của bộ
nhớ làm vùng địa chỉ của các ngoại vi. Khi đọc hay viết vào vùng địa chỉ này
của bộ nhớ là liên hệ đến các ngoại vi.
Dù dùng cách nào để định vị vào/ra thì mỗi bộ phận vào/ra đều có các
thanh ghi để cung cấp thông tin về trạng thái và về điều khiển. Bộ phận vào/ra
dùng bit trạng thái <i>“sẵn sàng"</i> để báo cho bộ xử lý nó sẵn sàng nhận số liệu.
Định kỳ bộ xử lý xem xét bít này để biết bộ phận vào ra có sẵn sàng hay không.
Phương pháp này là <i>phương pháp thăm dò</i> (polling). Và nhược điểm của
phương pháp này là làm mất thời gian của bộ xử lý vì định kỳ phải thăm dị tính
sẵn sàng của các thiết bị ngoại vi. Điều này đã được nhận thấy từ lâu và đã dẫn
đến phát minh ra ngắt quãng (interrupt) để báo cho bộ xử lý biết lúc có một bộ
phận vào/ra cần được phục vụ.
Việc dùng ngắt quãng làm cho bộ xử lý khơng mất thời gian thăm dị xem
các ngoại vi có u cầu phục vụ hay khơng, nhưng bộ xử lý phải mất thời gian
chuyển dữ liệu. Thông thường việc trao đổi số liệu giữa ngoại vi và CPU là theo
khối số liệu, nên vi mạch thâm nhập trực tiếp bộ nhớ trong (DMA: Direct
Memory Access) được dùng trong nhiều máy tính để chuyển một khối nhiều từ
mà khơng có sự can thiệp của CPU.
<i>Hình 5.26. Sơ đồ hoạt động của hệ thống bus có vi mạch DMA</i>
DMA là một vi mạch chức năng đặc biệt. Nó chuyển số liệu giữa ngoại vi và
bộ nhớ trong, trong lúc đó CPU rãnh rỗi để làm cơng việc khác. Vậy DMA nằm
ngoài CPU và tác động như là một chủ nhân của bus. Bộ xử lý khởi động các
thanh ghi của DMA, các thanh ghi này chứa địa chỉ ô nhớ và số byte cần
chuyển. DMA chủ động chuyển số liệu và khi chấm dứt thì trả quyền điều khiển
cho bộ xử lý.
việc mình theo một chương trình cố định (chứa trong ROM), hay theo một
chương trình mà hệ điều hành nạp vào bộ nhớ trong. Hệ điều hành thiết lập một
hàng chờ đợi gồm các khối điều khiển các bộ phận vào/ ra. Các khối chứa các
thơng tin như là vị trí của số liệu (nguồn và đích) và số số liệu. Các bộ xử lý
vào/ra lấy các thông tin này trong hàng chờ đợi, thực hiện các việc cần phải làm
và gởi về CPU tín hiệu ngắt khi đã thực hiện xong cơng việc.
Một máy tính có bộ xử lý vào/ra được xem như một máy tính đa xử lý vì
DMA giúp cho máy tính thực hiện cùng lúc nhiều q trình. Tuy nhiên bộ xử lý
vào/ra không tổng quát bằng các bộ xử lý vì chúng chỉ làm được một số việc
nhất định. Hơn nữa bộ xử lý vào/ ra không chế biến số liệu như các bộ xử lý
thường làm. Nó chỉ di chuyển số liệu từ nơi này sang nơi khác.
6. An toàn dữ liệu trong lưu trữ
Người ta thường chú trọng đến sự an tồn trong lưu giữ thơng tin ở đĩa từ
hơn là sự an tồn của thơng tin trong bộ xử lý. Bộ xử lý có thể hư mà không làm
tổn hại đến thông tin. ô đĩa của máy tính bị hư có thể gây ra các thiệt hại rất to
lớn.
Một phương pháp giúp tăng cường độ an tồn của thơng tin trên đĩa từ là
dùng một mảng đĩa từ. Mảng đĩa từ này được gọi là <i>Hệ thống đĩa dự phòng</i>
<i>(RAID - Redundant Array of Independent Disks).</i> Cách lưu trữ dư thông tin làm
tăng giá tiền và sự an toàn (ngoại trừ RAID 0). Cơ chế RAID có các đặc tính
sau:
RAID là một tập hợp các ổ đĩa cứng (vật lý) được thiết lập theo một kỹ
thuật mà hệ điều hành chỉ “nhìn thấy” chỉ là một ổ đĩa (logic) duy nhất.
Với cơ chế đọc/ghi thông tin diễn ra trên nhiều đĩa (ghi đan chéo hay soi
gương).
Trong mảng đĩa có lưu các thơng tin kiểm tra lỗi dữ liệu; do đó, dữ liệu có
thể được phục hồi nếu có một đĩa trong mảng đĩa bị hư hỏng .
Tuỳ theo kỹ thuật thiết lập, RAID có thể có các mức sau:
điều hành nhận biết) có dung dượng bằng tổng dung lượng của các ổ đĩa thành
viên. Điều này giúp cho người dùng có thể có một ổ đĩa logic có dung lượng lớn
hơn rất nhiều so với dung lượng thật của ổ đĩa vật lý cùng thời điểm. Dữ liệu
được ghi phân tán trên tất cả các đĩa trong mảng. Đây chính là sự khác biệt so
với việc ghi dữ liệu trên các đĩa riêng lẻ bình thường bởi vì thời gian đọc-ghi dữ
liệu trên đĩa tỉ lệ nghịch với số đĩa có trong tập hợp (số đĩa trong tập hợp càng
nhiều, thời gian đọc - ghi dữ liệu càng nhanh). Tính chất này của RAID 0 thật sự
<b>CÂU HỎI ÔN TẬP</b>
1. Đĩa cứng: cấu tạo, các chuẩn ghép nối, bảng phân khu, thư mục gốc và hệ
thống file.
2. Đĩa quang: cấu tạo, nguyên lý đọc CD và các loại đĩa quang.
3. Thế nào là thẻ nhớ? Phân biệt được các loại thẻ nhớ.
<b>TÀI LIỆU THAM KHẢO</b>
[1]. Msc. Võ Văn Chín, Ths Nguyễn Hồng Vân, KS Phạm Hữu Tài; Giáo trình
kiến trúc máy tính; Khoa CNTT, Đại học Cần Thơ.
[2]. Hồng Xn Dậu, Bài giảng Kiến trúc máy tính của. Học viên bưu chính
viễn thơng.
[3]. Nguyễn Đình Việt, Kiến Trúc Máy Tính, Nhà xuất bản: Đại học quốc gia
Hà Nội.
[4]. Nguyễn Văn Ơn, Hồng Đức Hải, Cấu trúc máy tính, Nhà xuất bản Lao
động xã hội.