Tải bản đầy đủ (.pdf) (91 trang)

bai giang Kien truc may tinh

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 (2.88 MB, 91 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

Chương 1



<b>GIỚI THIỆU CHUNG</b>



<b>Phạm Quang Dũng</b>


Bộ môn Khoa học máy tính - Khoa CNTT
Trường Đại học Nơng nghiệp I – Hà Nội
website: www.hau1.edu.vn/it/pqdung
ĐT: (04) 8766318 DĐ: 0988.149.189


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.2


<i><b>Chương 1: Giới thiệu chung</b></i>


Nội dung chương 1



1.1. Máy tính và phân loại
1.2. Kiến trúc máy tính
1.3. Sự tiến hố của máy tính


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.3


<i><b>Chương 1: Giới thiệu chung</b></i>


1.1. Máy tính và phân loại



1. Máy tính


† Máy tính (Computer) là thiết bị điện tử thực hiện



các công việc sau:


„ Nhận thông tin vào,


„ Xử lý thông tin theo dãy các lệnh được nhớ sẵn bên


trong,


„ Đưa thông tin ra.


† Dãy các lệnh nằm trong bộ nhớ để yêu cầu máy


tính thực hiện công việc cụ thể được gọi là chương
trình (program)


Ỉ Máy tính hoạt động theo chương trình.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.4


<i><b>Chương 1: Giới thiệu chung</b></i>


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.5


<i><b>Chương 1: Giới thiệu chung</b></i>


Mơ hình phân lớp của máy tính



† Phần cứng: hệ thống vật lý của máy tính
† Phần mềm: các chương trình và dữ liệu



Người sử dụng


(End User) Người lập trình
(Programmer)


Người thiết kế HĐH
(OS Designer)
Các chương trình ứng dụng


(Application Programs)
Các phần mềm trung gian (Utilities)


Hệ điều hành (Operating System)


Phần cứng (Computer Hardware)


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.6


<i><b>Chương 1: Giới thiệu chung</b></i>


2. Phân loại máy tính



† Phân loại truyền thống:
„ Máy vi tính (Microcomputer)
„ Máy tính nhỏ (Minicomputer)
„ Máy tính lớn (Mainframe Computer)
„ Siêu máy tính (Supercomputer)


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.7



<i><b>Chương 1: Giới thiệu chung</b></i>


Phân loại máy tính hiện đại



† Máy tính để bàn (Desktop Computers)


† Máy chủ (Servers)


† Máy tính nhúng (Embedded Computers)


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.8


<i><b>Chương 1: Giới thiệu chung</b></i>


Máy tính để bàn (Desktop)



† Là loại máy tính phổ biến nhất
† Các loại máy tính để bàn


„ Máy tính cá nhân (Personal Computer – PC)
„ Máy tính trạm làm việc (Workstation Computer)


† 1981 Ỉ IBM giới thiệu máy tính IBM-PC sử


dụng bộ xử lý Intel 8088


† 1984 Æ Apple đưa ra máy tính Macintosh sử


dụng bộ xử lý Motorola 68000



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.9


<i><b>Chương 1: Giới thiệu chung</b></i>


Máy chủ (Server)



† Thực chất là máy phục vụ


† Dùng trong mạng theo mơ hình


Client/Server (Khách hàng/Người phục vụ)


† Tốc độ và hiệu năng tính tốn cao


† Dung lượng bộ nhớ lớn


† Độ tin cậy cao


† Giá thành: hàng chục nghìn đến hàng chục


triệu USD.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.10


<i><b>Chương 1: Giới thiệu chung</b></i>


Máy tính nhúng (Embedded Computer)



† Được đặt trong thiết bị khác để điều khiển thiết



bị đó làm việc


† Được thiết kế chuyên dụng


† Ví dụ:


„ Điện thoại di động


„ Bộ điều khiển trong máy giặt, điều hoà nhiệt


độ


„ Router - bộ định tuyến trên mạng


† Giá thành: Vài USD đến hàng trăm nghìn USD.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.11


<i><b>Chương 1: Giới thiệu chung</b></i>


1.2. Kiến trúc máy tính



Kiến trúc máy tính bao gồm hai khía cạnh:


† Kiến trúc tập lệnh (Intruction Set Architecture): nghiên cứu


máy tính theo cách nhìn của người lập trình.


† Tổ chức máy tính (Computer Organization): nghiên cứu cấu



trúc phần cứng máy tính.


Ỉ Kiến trúc tập lệnh thay đổi chậm, tổ chức máy tính thay đổi


rất nhanh.


Ví dụ: Các máy tính PC dùng các bộ xử lý Intel 32-bit từ
80386 đến Pentium 4:


„ Cùng chung kiến trúc tập lệnh (IA-32)
„ Có tổ chức khác nhau


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.12


<i><b>Chương 1: Giới thiệu chung</b></i>


Kiến trúc tập lệnh



Kiến trúc tập lệnh của máy tính bao gồm:


† Tập lệnh: tập hợp các chuỗi số nhị phân mã


hoá cho các thao tác mà máy tính có thể thực
hiện.


† Các kiểu dữ liệu: các kiểu dữ liệu mà máy tính


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.13


<i><b>Chương 1: Giới thiệu chung</b></i>



Cấu trúc cơ bản của máy tính



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.14


<i><b>Chương 1: Giới thiệu chung</b></i>


Các thành phần cơ bản của máy tính



† Bộ xử lý trung tâm (Central Processing Unit):


Điều khiển hoạt động của máy tính và xử lý dữ liệu.


† Bộ nhớ chính (Main Memory): Chứa các chương


trình và dữ liệu đang được sử dụng.


† Hệ thống vào ra (Input/Output System): Trao


đổi thông tin giữa máy tính với bên ngồi.


† Liên kết hệ thống (System Interconnection):


Kết nối và vận chuyển thông tin giữa các thành
phần với nhau.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.15


<i><b>Chương 1: Giới thiệu chung</b></i>



1.3. Sự tiến hố của máy tính



† Thế hệ thứ nhất: Máy tính dùng đèn điện tử


chân không (1943-1956)


† Thế hệ thứ hai: Máy tính dùng transistor


(1957-1965)


† Thế hệ thứ ba: Máy tính dùng vi mạch SSI,


MSI và LSI (1966-1980)


† Thế hệ thứ tư: Máy tính dùng vi mạch VLSI,


SLSI (1981-nay)


<b> />


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.16


<i><b>Chương 1: Giới thiệu chung</b></i>


1. Máy tính dùng đèn điện tử



† <b>ENIAC - Máy tính điện tử đầu tiên</b>


„ Electronic Numerical Intergator And Computer
„ Dự án của Bộ Quốc phòng Mỹ



„ Do John Mauchly và John Presper Eckert ở Đại


học Pennsylvania thiết kế.


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.17


<i><b>Chương 1: Giới thiệu chung</b></i>


ENIAC (tiếp)



† Nặng 30 tấn


† Kích thước 140 m2


† 18000 đèn điện tử và 1500 rơle


† 5000 phép cộng/giây


† Xử lý theo số thập phân
† Bộ nhớ chỉ lưu trữ dữ liệu


† Lập trình bằng cách thiết lập vị trí của các


chuyển mạch và các cáp nối.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.18


<i><b>Chương 1: Giới thiệu chung</b></i>


ENIAC (tiếp)




Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.19


<i><b>Chương 1: Giới thiệu chung</b></i>


ENIAC (tiếp)



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.20


<i><b>Chương 1: Giới thiệu chung</b></i>


Máy tính von Neumann



† Cịn gọi là máy tính IAS:


„ Princeton Institute for Advanced Studies
„ Được bắt đầu từ 1947, hoàn thành 1952
„ Do John von Neumann thiết kế


„ Được xây dựng theo ý tưởng “chương trình được


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.21


<i><b>Chương 1: Giới thiệu chung</b></i>


Đặc điểm chính của máy tính IAS


† Bao gồm các thành phần: đơn vị điều khiển, đơn vị số


học và logic (ALU), bộ nhớ chính và các thiết bị vào ra.



† Bộ nhớ chính chứa chương trình và dữ liệu.


† Bộ nhớ chính được đánh địa chỉ theo từng ngăn nhớ,


khơng phụ thuộc vào nội dung của nó.


† ALU thực hiện các phép toán với số nhị phân.


† Đơn vị điều khiển nhận lệnh từ bộ nhớ, giải mã và thực


hiện lệnh một cách tuần tự.


† Đơn vị điều khiển điều khiển hoạt động của các thiết bị


vào-ra.


† Trở thành mơ hình cơ bản của máy tính.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.22


<i><b>Chương 1: Giới thiệu chung</b></i>


John von Neumann và máy tính IAS



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.23


<i><b>Chương 1: Giới thiệu chung</b></i>


Các máy tính thương mại ra đời




† 1947 - Eckert-Mauchly Computer Corporation


† UNIVAC I (Universal Automatic Computer)


† 1950s - UNIVAC II


„ Nhanh hơn
„ Bộ nhớ lớn hơn


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.24


<i><b>Chương 1: Giới thiệu chung</b></i>


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.25


<i><b>Chương 1: Giới thiệu chung</b></i>


UNIVAC



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.26


<i><b>Chương 1: Giới thiệu chung</b></i>


Hãng IBM



† IBM – International Business Machine


† 1952 – IBM 701


„ Máy tính lưu trữ chương trình đầu tiên của IBM


„ Sử dụng cho tính tốn khoa học


† 1955 – IBM 702


„ Các ứng dụng thương mại


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.27


<i><b>Chương 1: Giới thiệu chung</b></i>


IBM 701 (1952) và IBM 702 (1955)



IBM 701


IBM 702


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.28


<i><b>Chương 1: Giới thiệu chung</b></i>


2. Máy tính dùng transistor



† Máy tính PDP-1 của DEC (Digital Equipment


<i>Corporation) máy tính mini đầu tiên</i>


† IBM 7000


† Hàng trăm nghìn phép cộng trong một giây



</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.29


<i><b>Chương 1: Giới thiệu chung</b></i>


DEC's PDP-1 (1960)



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.30


<i><b>Chương 1: Giới thiệu chung</b></i>


IBM 7030 (1961)



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.31


<i><b>Chương 1: Giới thiệu chung</b></i>


3. Máy tính dùng vi mạch SSI, MSI và LSI


† Vi mạch (Integrated Circuit – IC): nhiều transistor


và các phần tử khác được tích hợp trên một chip
bán dẫn.


„ SSI (Small Scale Integratinon)
„ MSI (Medium Scale Integration)
„ LSI (Large Scale Integration)


„ VLSI (Very Large Scale Integration) (dùng cho máy


tính hệ thứ tư)



† Siêu máy tính xuất hiện: CRAY-1, VAX
† Bộ vi xử lý (microprocessor) ra đời


„ Bộ xử lý đầu tiên Ỉ Intel 4004 (1971).


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.32


<i><b>Chương 1: Giới thiệu chung</b></i>


Luật Moore



† Gordon Moore - người đồng sáng lập Intel
† Số transistors trên chip sẽ gấp đôi sau 18 tháng
† Giá thành của chip hầu như không thay đổi
† Mật độ cao hơn, do vậy đường dẫn ngắn hơn
† Kích thước nhỏ hơn dẫn tới độ phức tạp tăng lên
† Điện năng tiêu thụ ít hơn


† Hệ thống có ít các chip liên kết với nhau, do đó


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.33


<i><b>Chương 1: Giới thiệu chung</b></i>


Tăng trưởng số transitor trong chip CPU



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.34


<i><b>Chương 1: Giới thiệu chung</b></i>



IBM 360 Family (1964-1968)



† Có từ model 20 minicomputer (bộ nhớ 24 KB)


đến model 91 supercomputer được xây dựng
cho hệ thống phòng thủ tên lửa Bắc Mỹ.


/>


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.35


<i><b>Chương 1: Giới thiệu chung</b></i>


IBM 360/40



† Dùng HĐH DOS/360


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.36


<i><b>Chương 1: Giới thiệu chung</b></i>


IBM 360/67



† Time sharing


system


† Phần cứng hỗ trợ


virtual memory



† Dùng HĐH CP-67


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.37


<i><b>Chương 1: Giới thiệu chung</b></i>


IBM 360/91



† Được thiết kế để xử lý dữ liệu tốc độ cao cho các ứng dụng khoa học


như khám phá không gian, vật lý nguyên tử, dự báo thời tiết toàn cầu.


† 16.6 triệu phép cộng/giây → 1000 bài tốn với 200 tỷ phép tính/ngày.
† 2-6 MB main memory, CPU có 5 đơn vị xử lý đồng thời.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.38


<i><b>Chương 1: Giới thiệu chung</b></i>


PDP-11 (1972)



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.39


<i><b>Chương 1: Giới thiệu chung</b></i>


Siêu máy tính CRAY-1 (1976)



Saymour Cray



‰ HĐH Cray Operating
System (COS),
‰ 100-160 triệu phép tính


dấu chấm động/giây
(megaflops)
‰ Xử lý dữ liệu vector
‰ 8 MB main memory


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.40


<i><b>Chương 1: Giới thiệu chung</b></i>


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.41


<i><b>Chương 1: Giới thiệu chung</b></i>


VAX 11/780 (1978) - máy tính 32-bit



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.42


<i><b>Chương 1: Giới thiệu chung</b></i>


Osborne 1 (1980) - máy tính khả chuyển


† Máy tính "có thể di chuyển" đầu tiên, kích thước


nhỏ, nặng 24 pound (10,9 kg)


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.43



<i><b>Chương 1: Giới thiệu chung</b></i>


4. Máy tính dùng vi mạch VLSI



Các sản phẩm chính của công nghệ VLSI:


† Bộ vi xử lý (Microprocessor): CPU được chế tạo trên


một chip.


† Vi mạch điều khiển tổng hợp (chipset): một hoặc


một vài vi mạch thực hiện được nhiều chức năng
điều khiển và nối ghép.


† Bộ nhớ bán dẫn (Semiconductor Memory): ROM,


RAM


† Các bộ vi điều khiển (Microcontroller): máy tính


chuyên dụng được chế tạo trên một chip.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.44


<i><b>Chương 1: Giới thiệu chung</b></i>


Các hệ thống máy tính hiện đại




† Máy tính nhúng


† Máy tính cá nhân (PC)


† Máy trạm làm việc


† Máy chủ (Servers)


† Mạng máy tính


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.45


<i><b>Chương 1: Giới thiệu chung</b></i>


Một số Hệ thống Máy tính nhúng



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.46


<i><b>Chương 1: Giới thiệu chung</b></i>


Siêu máy tính Earth Simulator của NEC (2002)


Earth Simulator tại Cơ quan Khoa
học và Công nghệ biển Nhật Bản
(JAMSTEC), Yokohama, Japan


‰ 5200 processor
‰ 35860-40960 GFlops


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.47



<i><b>Chương 1: Giới thiệu chung</b></i>


Siêu máy tính ASC Purple của IBM (2005)


<b>ASC Purple at Lawrence Livermore </b>
<b>National Laboratory</b>


‰ 10240 processor
‰ 40960 GB main


memory


‰ 63390-77824 GFlops


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 1.48


<i><b>Chương 1: Giới thiệu chung</b></i>


Siêu máy tính BlueGene L của IBM (2005)


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

Chương 2



<b>HỆ THỐNG MÁY TÍNH</b>



<b>Phạm Quang Dũng</b>


Bộ mơn Khoa học máy tính - Khoa CNTT
Trường Đại học Nơng nghiệp I – Hà Nội
website: www.hau1.edu.vn/it/pqdung


ĐT: (04) 8766318 DĐ: 0988.149.189


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.2
<i><b>Chương 2: Hệ thống máy tính</b></i>


Nội dung chương 2



2.1. Các thành phần của máy tính
2.2. Hoạt động của máy tính
2.3. Liên kết hệ thống


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.3
<i><b>Chương 2: Hệ thống máy tính</b></i>


2.1. Các thành phần của máy tính



† Bộ xử lý trung tâm (Central Processing Unit)


† Bộ nhớ (Memory)


† Hệ thống vào ra (Input/Output System)
† Liên kết hệ thống (System Interconnection)


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.4
<i><b>Chương 2: Hệ thống máy tính</b></i>


1. Bộ xử lý trung tâm (CPU)



† Chức năng



„ điều khiển hoạt động của máy tính


„ xử lý dữ liệu


† Nguyên tắc hoạt động cơ bản:


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.5
<i><b>Chương 2: Hệ thống máy tính</b></i>


Cấu trúc cơ bản của CPU



Đơn vị
điều khiển


(CU)


Đơn vị số học
và logic


(ALU)


Tập các
thanh ghi


(RF)


Đơn vị phối ghép bus (BIU)


bus điều khiển bus dữ liệu bus địa chỉ
bus bên trong



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.6
<i><b>Chương 2: Hệ thống máy tính</b></i>


Các thành phần cơ bản của CPU



† <b>Đơn vị điều khiển (Control Unit – CU): điều khiển hoạt </b>


động của máy tính theo chương trình đã định sẵn.


† <b>Đơn vị số học và logic (Arithmetic and Logic Unit –</b>


ALU): thực hiện các phép toán số học và các phép toán
logic trên các dữ liệu cụ thể.


† <b>Tập thanh ghi (Register File - RF): lưu giữ các thông tin </b>


tạm thời phục vụ cho hoạt động của CPU.


† <b>Đơn vị nối ghép bus (Bus interface Unit - BIU): kết nối </b>


và trao đổi thông tin giữa bus bên trong (internal bus)
và bus bên ngoài (external bus)


<i><b>Chương 2: Hệ thống máy tính</b></i>


Tốc độ của bộ xử lý



† Tốc độ của bộ xử lý:



„ Tính bằng số lệnh được thực hiện trong 1 giây
„ MIPS (Millions of Instructions per Second)


„ Khó đánh giá chính xác


† Tần số xung nhịp của bộ xử lý:


„ Bộ xử lý hoạt động theo một xung nhịp (Clock)


có tần số xác định


„ Tốc độ của bộ xử lý được đánh giá gián tiếp


thông qua tần số của xung nhịp.


<i><b>Chương 2: Hệ thống máy tính</b></i>


Tốc độ của bộ xử lý (tiếp)



† Dạng xung nhịp:


† T<sub>0</sub>- chu kỳ xung nhịp
† Tần số xung nhịp: f<sub>0</sub>= 1/T<sub>0</sub>
† Mỗi thao tác của bộ xử lý cần kT<sub>0</sub>


† T<sub>0</sub>càng nhỏ Ỉ bộ xử lý chạy càng nhanh


† Ví dụ: Máy tính dùng bộ xử lý Pentium IV 2GHz


Ta có f0= 2 GHz = 2x109Hz



</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.9
<i><b>Chương 2: Hệ thống máy tính</b></i>


2. Bộ nhớ máy tính (Memory)



† Chức năng: lưu trữ chương trình và dữ liệu.
† Các thao tác cơ bản với bộ nhớ:


„ Đọc (Read)


„ Ghi (Write)


† Các thành phần chính:


„ Bộ nhớ trong (Internal Memory)


„ Bộ nhớ ngoài (External Memory)


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.10
<i><b>Chương 2: Hệ thống máy tính</b></i>


Các thành phần của bộ nhớ máy tính



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.11
<i><b>Chương 2: Hệ thống máy tính</b></i>


Bộ nhớ trong (Internal memory)



† Chức năng và đặc điểm:



„ Chứa các thơng tin mà CPU có thể trao đổi trực


tiếp


„ Tốc độ rất nhanh


„ Dung lượng không lớn


„ Sử dụng bộ nhớ bán dẫn: ROM, RAM


† Các loại bộ nhớ trong:


„ Bộ nhớ chính


„ Bộ nhớ cache (bộ nhớ đệm nhanh)


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.12
<i><b>Chương 2: Hệ thống máy tính</b></i>


Bộ nhớ chính (Main memory)



† Chứa các chương trình và dữ


liệu đang được CPU sử dụng.


† Tổ chức thành các ngăn nhớ


được đánh địa chỉ.



† Ngăn nhớ thường được tổ chức


theo byte.


† Nội dung của ngăn nhớ có thể


thay đổi, song địa chỉ vật lý của
ngăn nhớ luôn cố định.


00101011
11010101
00001010
01011000
11111011


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.13
<i><b>Chương 2: Hệ thống máy tính</b></i>


Bộ nhớ đệm nhanh (Cache memory)



† Bộ nhớ có tốc độ nhanh được đặt đệm giữa


CPU và bộ nhớ chính nhằm tăng tốc độ CPU
truy nhập bộ nhớ


† Dung lượng nhỏ hơn bộ nhớ chính
† Tốc độ nhanh hơn


† Cache thường được chia thành một số mức
† Cache có thể được tích hợp trên chip vi xử lý.


† Cache có thể có hoặc khơng.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.14
<i><b>Chương 2: Hệ thống máy tính</b></i>


Bộ nhớ ngồi (External memory)



† Chức năng và đặc điểm:


„ Lưu giữ tài nguyên phần mềm của máy tính


„ Được kết nối với hệ thống dưới dạng các thiết bị


vào-ra


„ Dung lượng lớn


„ Tốc độ chậm


† Các loại bộ nhớ ngoài:


„ Bộ nhớ từ: đĩa cứng, đĩa mềm


„ Bộ nhớ quang: đĩa CD, DVD


„ Bộ nhớ bán dẫn: Flash disk, memory card


<i><b>Chương 2: Hệ thống máy tính</b></i>


3. Hệ thống vào-ra (Input/Output System)




† Chức năng: trao đổi thông tin giữa máy tính


với thế giới bên ngồi.


† Các thao tác cơ bản:
„ Vào dữ liệu (Input)
„ Ra dữ liệu (Output)
† Các thành phần chính:


„ Các thiết bị ngoại vi (Peripheral Devices)


„ Các môđun vào-ra (IO Modules)


<i><b>Chương 2: Hệ thống máy tính</b></i>


Cấu trúc cơ bản của hệ thống vào-ra



Cổng


vào-ra
Cổng



vào-ra


Cổng



vào-ra


Thiết bị
ngoại vi


Thiết bị
ngoại vi


Thiết bị
ngoại vi


Môđun
vào-ra
Nối ghép với


</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.17
<i><b>Chương 2: Hệ thống máy tính</b></i>


Các thiết bị ngoại vi



† Chức năng: chuyển đổi dữ liệu giữa bên trong


và bên ngồi máy tính.


† Các loại thiết bị ngoại vi (TBNV) cơ bản:
„ Thiết bị vào: bàn phím, chuột, máy quét …
„ Thiết bị ra: màn hình, máy in …


„ Thiết bị nhớ: các ổ đĩa …



„ Thiết bị truyền thông: MODEM …


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.18
<i><b>Chương 2: Hệ thống máy tính</b></i>


Mơđun vào-ra



† Chức năng: nối ghép các TBNV với máy tính.
† Mỗi mơđun vào-ra có một hoặc một vài cổng


vào-ra (I/O Port).


† Mỗi cổng vào-ra được đánh một địa chỉ xác


định.


† Các TBNV được kết nối và trao đổi dữ liệu với


máy tính thông qua các cổng vào-ra.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.19
<i><b>Chương 2: Hệ thống máy tính</b></i>


2.2. Hoạt động của máy tính



1. Thực hiện chương trình



† Là hoạt động cơ bản của máy tính
† Máy tính lặp đi lặp lại hai bước:



„ Nhận lệnh


„ Thực hiện lệnh


† Thực hiện chương trình bị dừng nếu thực hiện


lệnh bị lỗi hoặc gặp lệnh dừng.


}

chu trình lệnh


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.20
<i><b>Chương 2: Hệ thống máy tính</b></i>


Chu trình lệnh



Bắt đầu


Nhận lệnh


Thực hiện lệnh


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.21
<i><b>Chương 2: Hệ thống máy tính</b></i>


Q trình nhận lệnh



† Bắt đầu mỗi chu trình lệnh, CPU nhận lệnh từ


bộ nhớ chính.



† Bộ đếm chương trình PC (Program Counter)


của CPU giữ địa chỉ của lệnh sẽ được nhận.


† CPU nhận lệnh từ ngăn nhớ được trỏ bởi PC.
† Lệnh được nạp vào thanh ghi lệnh IR


(Instruction Register)


† Sau khi lệnh được nhận vào, nội dung PC tự


động tăng để trỏ sang lệnh kế tiếp.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.22
<i><b>Chương 2: Hệ thống máy tính</b></i>


Minh họa q trình nhận lệnh



<i><b>Chương 2: Hệ thống máy tính</b></i>


Q trình thực hiện lệnh



† Bộ xử lý giải mã lệnh đã được nhận và phát tín


hiệu điều khiển thực hiện thao tác mà lệnh yêu
cầu.


† Các kiểu thao tác của lệnh:


„ Trao đổi dữ liệu giữa CPU và bộ nhớ chính



„ Trao đổi dữ liệu giữa CPU và môđun vào-ra


„ Xử lý dữ liệu: thực hiện các phép toán số học


hoặc phép toán logic với các dữ liệu


„ Điều khiển rẽ nhánh


„ Kết hợp các thao tác trên


<i><b>Chương 2: Hệ thống máy tính</b></i>


2. Ngắt (Interrupt)



† Khái niệm: Ngắt là cơ chế cho phép CPU tạm


dừng chương trình đang thực hiện để chuyển
sang thực hiện một chương trình khác, gọi là


<i>chương trình con phục vụ ngắt.</i>


† Các loại ngắt:


„ Ngắt do lỗi khi thực hiện chương trình, ví dụ:


tràn số, chia cho 0 …


„ Ngắt do lỗi phần cứng, ví dụ: lỗi bộ nhớ RAM



„ Ngắt do mơđun vào-ra phát tín hiệu ngắt đến


</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.25
<i><b>Chương 2: Hệ thống máy tính</b></i>


Hoạt động ngắt



† Sau khi hồn thành một lệnh, bộ xử lý kiểm tra tín hiệu


ngắt.


† Nếu khơng có ngắt Ỉ bộ xử lý nhận lệnh tiếp theo của


chương trình hiện tại.


† Nếu có tín hiệu ngắt:


„ Tạm dừng chương trình đang thực hiện


„ Cất ngữ cảnh (các thơng tin liên quan đến chương trình bị


ngắt)


„ Thiết lập PC trỏ đến chương trình con phục vụ ngắt
„ Chuyển sang thực hiện chương trình con phục vụ ngắt
„ Cuối chương trình con phục vụ ngắt, khơi phục ngữ cảnh và


tiếp tục chương trình đang bị tạm dừng.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.26


<i><b>Chương 2: Hệ thống máy tính</b></i>


Hoạt động ngắt (tiếp)



lệnh
lệnh
lệnh
lệnh
lệnh i
lệnh i+1
RETURN
lệnh
lệnh
.
.
.
Chương trình
đang thực hiện


.
.
.
lệnh


Chương trình con
phục vụ ngắt


lệnh
lệnh
Ngắt ở đây



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.27
<i><b>Chương 2: Hệ thống máy tính</b></i>


Chu trình lệnh với ngắt



Bắt đầu


Nhận lệnh


Thực hiện


lệnh Dừng


Kiểm tra
có ngắt hay


khơng?


Chuyển đến
chương trình con


phục vụ ngắt
Y


N


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.28
<i><b>Chương 2: Hệ thống máy tính</b></i>



Xử lý với nhiều tín hiệu yêu cầu ngắt



† Xử lý ngắt tuần tự


„ Khi một ngắt đang được thực hiện, các ngắt khác sẽ


bị cấm


„ Bộ xử lý sẽ bỏ qua các ngắt tiếp theo trong khi đang


xử lý một ngắt


„ Các ngắt vẫn đang đợi và được kiểm tra sau khi ngắt


đầu tiên được xử lý xong


„ Các ngắt được thực hiện tuần tự


† Xử lý ngắt ưu tiên


„ Các ngắt được định nghĩa mức ưu tiên khác nhau
„ Ngắt có mức ưu tiên thấp hơn có thể bị ngắt bởi ngắt


</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.29
<i><b>Chương 2: Hệ thống máy tính</b></i>


3. Hoạt động vào-ra



† Hoạt động vào-ra: là hoạt động trao đổi dữ liệu



giữa TBNV với bên trong máy tính.


† Các kiểu hoạt động vào-ra:


„ CPU trao đổi dữ liệu với môđun vào-ra


„ Môđun vào-ra trao đổi dữ liệu trực tiếp với bộ


nhớ chính.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.30
<i><b>Chương 2: Hệ thống máy tính</b></i>


2.3. Liên kết hệ thống



1. Khái niệm chung về bus



† Bus: tập hợp các đường kết nối dùng để vận


chuyển thông tin giữa các thành phần của máy
tính với nhau.


† Độ rộng bus: là số đường dây của bus có thể


truyền các bit thông tin đồng thời (chỉ dùng
cho bus địa chỉ và bus dữ liệu)


† Phân loại cấu trúc bus:


„ Cấu trúc đơn bus



„ Cấu trúc đa bus


<i><b>Chương 2: Hệ thống máy tính</b></i>


Bus đồng bộ và bus khơng đồng bộ



† Bus đồng bộ


„ Bus có đường tín hiệu Clock


„ Các sự kiện trên bus được xác định bởi xung


nhịp Clock.


† Bus khơng đồng bộ


„ Khơng có đường tín hiệu Clock


„ Kết thúc một sự kiện này trên bus sẽ kích hoạt


cho một sự kiện tiếp theo.


<i><b>Chương 2: Hệ thống máy tính</b></i>


</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.33
<i><b>Chương 2: Hệ thống máy tính</b></i>


Bus địa chỉ




† Chức năng: vận chuyển địa chỉ để xác định


ngăn nhớ hay cổng vào-ra.


† Độ rộng bus địa chỉ: xác định dung lượng bộ


nhớ cực đại của hệ thống.
Nếu độ rộng bus địa chỉ là N bit:


A<sub>N-1</sub>, A<sub>N-2</sub>, ... A<sub>2</sub>, A<sub>1</sub>, A<sub>0</sub>


Ỉ dung lượng bộ nhớ cực đại là 2N <sub>byte</sub>
(cịn gọi là khơng gian địa chỉ bộ nhớ)


† Ví dụ: Bộ xử lý Intel Pentium có bus địa chỉ 32


bit Ỉ khơng gian địa chỉ là 232<sub>byte = 4 GB.</sub>


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.34
<i><b>Chương 2: Hệ thống máy tính</b></i>


Bus dữ liệu



† Chức năng:


„ vận chuyển lệnh từ bộ nhớ đến CPU


„ vận chuyển dữ liệu giữa CPU, các môđun nhớ và


môđun vào-ra.



† Độ rộng bus dữ liệu: xác định số bit dữ liệu có


thể được trao đổi đồng thời.


„ M bit: D<sub>M-1</sub>, D<sub>M-2</sub>, … D<sub>2</sub>, D<sub>1</sub>, D<sub>0</sub>
„ M thường là 8, 16, 32, 64, 128 bit


† Ví dụ: Các bộ xử lý Pentium có bus dữ liệu là


64 bit.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.35
<i><b>Chương 2: Hệ thống máy tính</b></i>


Bus điều khiển



† Chức năng: vận chuyển các tín hiệu điều khiển
† Các loại tín hiệu điều khiển:


„ Các tín hiệu phát ra từ CPU để điều khiển môđun


nhớ và môđun vào-ra


„ Các tín hiệu từ mơđun nhớ hay mơđun vào-ra


gửi đến yêu cầu CPU.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.36
<i><b>Chương 2: Hệ thống máy tính</b></i>



Một số tín hiệu điều khiển điển hình



† Các tín hiệu phát ra từ CPU để điều khiển


đọc-ghi:


„ <i>Memory Read (MEMR): điều khiển đọc dữ liệu từ</i>


một ngăn nhớ có địa chỉ xác định lên bus dữ liệu


„ <i>Memory Write (MEMW): điều khiển ghi dữ liệu </i>


đến một ngăn nhớ có địa chỉ xác định


„ <i>I/O Read (IOR): điều khiển đọc dữ liệu từ một </i>


cổng vào-ra có địa chỉ xác định lên bus dữ liệu


„ <i>I/O Write (IOW): điều khiển ghi dữ liệu có sẵn </i>


</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.37
<i><b>Chương 2: Hệ thống máy tính</b></i>


Một số tín hiệu điều khiển điển hình (tiếp)



† Các tín hiệu điều khiển ngắt:


„ <i>Interrupt Request (INTR): tín hiệu từ bộ điều </i>



khiển vào-ra gửi đến yêu cầu ngắt CPU để trao
đổi vào-ra. Tín hiệu INTR có thể bị che.


„ <i>Interrupt Acknowledge (INTA): tín hiệu phát ra </i>


từ CPU báo cho bộ điều khiển vào-ra biết CPU
chấp nhận ngắt để trao đổi vào-ra.


„ <i>Non Markable Interrupt (NMI): tín hiệu ngắt </i>


khơng che được gửi đến CPU.


„ <i>Reset: tín hiệu từ bên ngồi gửi đến CPU và các </i>


thành phần khác để khởi động lại máy tính.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.38
<i><b>Chương 2: Hệ thống máy tính</b></i>


Một số tín hiệu điều khiển điển hình (tiếp)



† Các tín hiệu điều khiển bus:


„ <i>Bus Request (BRQ): hay là Hold: tín hiệu từ </i>


môđun điều khiển vào-ra gửi đến yêu cầu CPU
chuyển nhượng quyền sử dụng bus.


„ <i>Bus Grant (BGT) hay là Hold Acknowledge </i>



<i>(HLDA): tín hiệu phát ra từ CPU chấp nhận </i>


quyền sử dụng bus.


„ <i>Lock: tín hiệu khóa khơng cho xin chuyển </i>


nhượng bus.


„ <i>Unlock: tín hiệu mở khóa cho xin chuyển nhượng </i>


bus.


<i><b>Chương 2: Hệ thống máy tính</b></i>


Đặc điểm của cấu trúc đơn bus



† Bus hệ thống chỉ phục vụ được một yêu cầu


trao đổi dữ liệu tại một thời điểm.


† Bus hệ thống phải có tốc độ bằng tốc độ bus


của môđun nhanh nhất trong hệ thống.


† Bus hệ thống phụ thuộc vào cấu trúc bus (các


tín hiệu) của bộ xử lý Ỉ các mơđun nhớ và các
mơđun vào-ra cũng phụ thuộc vào bộ xử lý.


† Vì vậy cần phải phân cấp bus Ỉ đa bus



<i><b>Chương 2: Hệ thống máy tính</b></i>


3. Phân cấp bus trong máy tính



† Phân cấp bus cho các thành phần:


„ Bus của bộ xử lý


„ Bus của bộ nhớ chính


„ Các bus vào-ra


† Phân cấp bus khác nhau về tốc độ


† Bus bộ nhớ chính và các bus vào-ra khơng phụ


</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.41
<i><b>Chương 2: Hệ thống máy tính</b></i>


Các bus điển hình trong PC



† Bus của bộ xử lý (Front Side Bus - FSB): có tốc độ nhanh


nhất.


† Bus của bộ nhớ chính (nối ghép với các môđun RAM).
† AGP bus (Accelerated Graphic Port) - Bus đồ họa tăng


tốc: nối ghép card màn hình tăng tốc.



† PCI bus (Peripheral Component Interconnection): nối


ghép với các TBNV có tốc độ trao đổi dữ liệu nhanh.


† USB (Universal Serial Bus): Bus nối tiếp đa năng


† IDE (Integrated Driver Electronics): Bus kết nối với ổ đĩa


cứng hoặc ổ đĩa CD, DVD.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.42
<i><b>Chương 2: Hệ thống máy tính</b></i>


Phân cấp bus



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.43
<i><b>Chương 2: Hệ thống máy tính</b></i>


Máy tính Pentium IV dùng Chipset 925



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 2.44
<i><b>Chương 2: Hệ thống máy tính</b></i>


4. Phân xử bus



† Có nhiều hơn một môđun điều khiển bus, vd CPU và


DMA controller, nhưng tại một thời điểm chỉ duy nhất 1
mođun có thể điều khiển bus Ỉ cần phân xử bus.



† Sự phân xử bus có thể là tập trung hoặc phân tán
„ Phân xử tập trung: có một thiết bị phần cứng điều


khiển sự truy nhập bus:


† <i><b>Được gọi là Bộ điều khiển bus (Bus Controller) hay </b></i>


<i><b>Trọng tài bus (Arbiter)</b></i>


† Có thể nằm trên CPU hoặc tách riêng


„ Phân xử phân tán: mỗi mơđun có thể điều khiển bus,


</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

Chương 3



<b>BIỂU DIỄN DỮ LIỆU VÀ</b>


<b>SỐ HỌC MÁY TÍNH</b>



<b>Phạm Quang Dũng</b>


Bộ mơn Khoa học máy tính - Khoa CNTT
Trường Đại học Nơng nghiệp I – Hà Nội
website: www.hau1.edu.vn/it/pqdung
ĐT: (04) 8766318 DĐ: 0988.149.189


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.2
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Nội dung chương 3




3.1. Các hệ đếm cơ bản


3.2. Mã hoá và lưu trữ dữ liệu trong máy tính
3.3. Biểu diễn số nguyên


3.4. Thực hiện các phép toán số học với số nguyên
3.5. Số dấu chấm động


3.6. Biểu diễn ký tự


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


3.1. Các hệ đếm cơ bản


† Hệ thập phân (Decimal System)


Ỉ Con người sử dụng


† Hệ nhị phân (Binary System)


Ỉ Máy tính sử dụng


† Hệ mười sáu (Hexadecimal System)


Ỉ Dùng để viết gọn số nhị phân


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


1. Hệ thập phân




† Cơ số 10


† 10 chữ số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9


† Dùng n chữ số thập phân có thể biểu diễn được


10n<sub>giá trị khác nhau:</sub>


„ 00...000 = 0


</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.5
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Ví dụ số thập phân



472.38 = 4x102 <sub>+ 7x10</sub>1 <sub>+ 2x10</sub>0 <sub>+ 3x10</sub>-1 <sub>+ 8x10</sub>-2


† Các chữ số của phần nguyên:


„ 472 : 10 = 47 dư 2


„ 47 : 10 = 4 dư 7
„ 4 : 10 = 0 dư 4
† Các chữ số của phần lẻ:


„ 0.38 x 10 = 3.8 phần nguyên = 3


„ 0.8 x 10 = 8.0 phần nguyên = 8


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.6


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


2. Hệ nhị phân



† Cơ số 2


† 2 chữ số nhị phân: 0 và 1


† <i><b>Chữ số nhị phân gọi là bit (binary digit)</b></i>
† Bit là đơn vị thơng tin nhỏ nhất


† Dùng n bit có thể biểu diễn được 2n giá trị khác


nhau:


„ 00...000 = 0


„ 11...111 = 2n-1


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.7
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Dạng tổng qt của số nhị phân



Có một số nhị phân A như sau:
A = a<sub>n</sub>a<sub>n-1</sub>...a<sub>1</sub>a<sub>0</sub>.a<sub>-1</sub>...a<sub>-m</sub>
Giá trị của A được tính như sau:


<i>A = an2n + an-12n-1 +...+ a020+ a-12-1 +...+ a-m2-m</i>





=


=

<i>n</i>


<i>m</i>
<i>i</i>


<i>i</i>
<i>i</i>


<i>a</i>


<i>A</i>

2



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.8
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Ví dụ số nhị phân


1101001.1011

<sub>(2)</sub>


<b>6 5 4 3 2 1 0 -1 -2 -3 -4</b>


</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.9
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


<b>Chuyển đổi số nguyên thập phân sang nhị phân</b>


† <i>Phương pháp 1: chia dần cho 2 rồi lấy phần dư</i>



† <i>Phương pháp 2: phân tích thành tổng của các </i>


số 2i<sub>Ỉ nhanh hơn</sub>


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.10
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Phương pháp chia dần cho 2



† Ví dụ: chuyển đổi 105<sub>(10)</sub>


„ 105:2 = 52 dư 1


„ 52:2 = 26 dư 0


„ 26:2 = 13 dư 0


„ 13:2 = 6 dư 1


„ 6:2 = 3 dư 0


„ 3:2 = 1 dư 1


„ 1:2 = 0 dư 1


† Kết quả: 105<sub>(10)</sub>= 1101001<sub>(2)</sub>


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


<b>Phương pháp phân tích thành tổng của các 2i</b>



† Ví dụ 1: chuyển đổi 105<sub>(10)</sub>


„ 105 = 64 + 32 + 8 + 1 = 26 + 25 + 23 + 20


„ Kết quả: 105<sub>(10)</sub>= 0110 1001<sub>(2)</sub>


† Ví dụ 2: 17000<sub>(10)</sub>= 16384 + 512 + 64 + 32 + 8


= 214 <sub>+ 2</sub>9 <sub>+ 2</sub>6<sub>+ 2</sub>5 <sub>+ 2</sub>3


17000

(10)=

0100 0010 0110 1000

(2)


<b>15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0</b>


27 <sub>2</sub>6 <sub>2</sub>5 <sub>2</sub>4 <sub>2</sub>3 <sub>2</sub>2 <sub>2</sub>1 <sub>2</sub>0


128 64 32 16 8 4 2 1


0 1 1 0 1 0 0 1


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


<b>Chuyển số lẻ thập phân sang nhị phân</b>



† Ví dụ 1: chuyển đổi 0.6875<sub>(10)</sub>


„ 0.6875 x 2 = 1.375 phần nguyên = 1


„ 0.375 x 2 = 0.75 phần nguyên = 0



„ 0.75 x 2 = 1.5 phần nguyên = 1


„ 0.5 x 2 = 1.0 phần nguyên = 1


</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.13
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


<b>Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)</b>


† Ví dụ 2: chuyển đổi 0.81<sub>(10)</sub>


„ 0.81 x 2 = 1.62 phần nguyên = 1


„ 0.62 x 2 = 1.24 phần nguyên = 1


„ 0.24 x 2 = 0.48 phần nguyên = 0


„ 0.48 x 2 = 0.96 phần nguyên = 0


„ 0.96 x 2 = 1.92 phần nguyên = 1


„ 0.92 x 2 = 1.84 phần nguyên = 1


„ 0.84 x 2 = 1.68 phần nguyên = 1


† 0.81<sub>(10)</sub>≈ 0.1100111<sub>(2)</sub>


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.14
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>



<b>Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)</b>


† Ví dụ 3: chuyển đổi 0.2<sub>(10)</sub>


„ 0.2 x 2 = 0.4 phần nguyên = 0


„ 0.4 x 2 = 0.8 phần nguyên = 0


„ 0.8 x 2 = 1.6 phần nguyên = 1


„ 0.6 x 2 = 1.2 phần nguyên = 1


„ 0.2 x 2 = 0.4 phần nguyên = 0


„ 0.4 x 2 = 0.8 phần nguyên = 0


„ 0.8 x 2 = 1.6 phần nguyên = 1


„ 0.6 x 2 = 1.2 phần nguyên = 1


† 0.2<sub>(10) </sub>≈ 0.00110011<sub>(2)</sub>


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.15
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


3. Hệ mười sáu (Hexa)



† Cơ số 16



† 16 chữ số: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F
† Dùng để viết gọn cho số nhị phân: cứ một


nhóm 4 bit sẽ được thay thế bằng 1 chữ số
Hexa


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.16
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


<b>Quan hệ giữa số nhị phân và số Hexa</b>



<b>4-bit</b> <b>Chữ số Hexa</b>


0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F



Ví dụ chuyển đổi số nhị phân Ỉ số Hexa:


† 0000 00002= 0016


† 1011 00112= B316


</div>
<span class='text_page_counter'>(28)</span><div class='page_container' data-page=28>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.17
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


<b>3.2. Mã hố và lưu trữ dữ liệu trong máy tính</b>


1. Nguyên tắc chung về mã hoá dữ liệu


† Mọi dữ liệu đưa vào máy tính đều được mã


hố thành số nhị phân


† Các loại dữ liệu


„ Dữ liệu nhân tạo: do con người quy ước


„ Dữ liệu tự nhiên: tồn tại khách quan với con


người


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.18
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Mã hố dữ liệu nhân tạo




† Dữ liệu số nguyên: mã hoá theo một số chuẩn


qui ước


† Dữ liệu số thực: mã hoá bằng số dấu chấm


động


† Dữ liệu ký tự: mã hoá theo bộ mã ký tự


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Mã hóa và tái tạo tín hiệu vật lý



† Các dữ liệu vật lý thông dụng:


„ Âm thanh


„ Hình ảnh


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Độ dài từ dữ liệu (word)



† Độ dài từ dữ liệu là số bit được sử dụng để mã


hoá loại dữ liệu tương ứng


</div>
<span class='text_page_counter'>(29)</span><div class='page_container' data-page=29>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.21
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>



2. Thứ tự lưu trữ các byte của dữ liệu



† Bộ nhớ chính thường được tổ chức theo byte


† Độ dài từ dữ liệu có thể chiếm từ một đến nhiều


byte


Ỉ cần phải biết thứ tự lưu trữ các byte trong bộ nhớ


chính với các dữ liệu nhiều byte.


‰ Có 2 cách lưu trữ:


ƒ

Lưu trữ đầu nhỏ (Little-endian): Byte thấp được lưu
trữ ở ngăn nhớ có địa chỉ nhỏ hơn, byte cao được lưu
trữ ở ngăn nhớ có địa chỉ lớn hơn.


ƒ

Lưu trữ đầu to (Big-endian): Byte cao được lưu trữ ở
ngăn nhớ có địa chỉ nhỏ hơn, byte thấp được lưu trữ
ở ngăn nhớ có địa chỉ lớn hơn.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.22
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Ví dụ lưu trữ dữ liệu 32-bit



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.23
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>



Lưu trữ của các bộ xử lý điển hình



† Intel 80x86 và các Pentium:


⇒ Little-endian


† Motorola 680x0 và các bộ xử lý RISC:


⇒ Big-endian


† Power PC và Itanium: cả hai


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.24
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


3.3. Biểu diễn số nguyên



Có hai loại số nguyên:


</div>
<span class='text_page_counter'>(30)</span><div class='page_container' data-page=30>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.25
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


1. Biểu diễn số nguyên không dấu



† Nguyên tắc tổng quát: Dùng n bit biểu diễn số


nguyên không dấu A:
a<sub>n-1</sub>a<sub>n-2</sub>…..a<sub>2</sub>a<sub>1</sub>a<sub>0</sub>



Giá trị của A được tính như sau:


Dải biểu diễn của A: từ 0 đến 2n<sub>-1</sub>




=


=

1


0


2



<i>n</i>


<i>i</i>
<i>i</i>
<i>i</i>


<i>a</i>


<i>A</i>



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.26
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Các ví dụ



† Ví dụ 1: Biểu diễn các số nguyên không dấu



sau đây bằng 8-bit:


A=41 ; B=150
<i><b>Giải:</b></i>


A = 41 = 32 + 8 + 1 = 25 <sub>+ 2</sub>3 <sub>+ 2</sub>0
41 = 0010 1001


B = 150 = 128 + 16 + 4 + 2 = 27<sub>+2</sub>4<sub>+2</sub>2<sub>+2</sub>1
150 = 1001 0110


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Các ví dụ (tiếp)



† Ví dụ 2: Cho các số nguyên không dấu M, N


được biểu diễn bằng 8-bit như sau:


„ M = 0001 0010
„ N = 1011 1001


Xác định giá trị của chúng?
Giải:


„ M = 0001 0010 = 24 + 21= 16 + 2 = 18
„ N = 1011 1001 = 27 + 25 + 24 + 23 + 20


= 128 + 32 + 16 + 8 + 1 = 185



<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Với n = 8 bit



Biểu diễn được các giá trị từ 0 đến 255


0000 0000 = 0 <i><b>Chú ý:</b></i>


0000 0001 = 1 1111 1111
0000 0010 = 2 + 0000 0001
0000 0011 = 3 1 0000 0000


… Vậy: 255 + 1 = 0?


</div>
<span class='text_page_counter'>(31)</span><div class='page_container' data-page=31>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.29
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


<b>Trục số học số nguyên không dấu với n = 8 bit</b>


† Trục số học:


† Trục số học máy tính:


0
255
254


1
2



3


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.30
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Với n = 16 bit, 32 bit, 64 bit



† n = 16 bit: dải biểu diễn từ 0 đến 65535 (216-1)


„ 0000 0000 0000 0000 = 0
„ …


„ 0000 0000 1111 1111 = 255
„ 0000 0001 0000 0000 = 256
„ …


„ 1111 1111 1111 1111 = 65535


† n= 32 bit: dải biểu diễn từ 0 đến 232-1
† n= 64 bit: dải biểu diễn từ 0 đến 264-1


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.31
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


2. Biểu diễn số nguyên có dấu



<b>a. Số bù một và Số bù hai:</b>


† Giả sử A là một số nhị phân, ta có:



„ Số bù một của A nhận được bằng cách đảo giá trị các


bit của A


„ (Số bù hai của A) = (Số bù một của A) + 1


† Ví dụ: với n= 8 bit


„ Giả sử có A = 0010 0101
„ Số bù một của A = 1101 1010


+ 1


„ Số bù hai của A = 1101 1011


† Vì A + (Số bù hai của A) = 0 Æ dùng số bù hai để


biểu diễn cho số âm


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.32
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


<b>b. Biểu diễn số nguyên có dấu bằng mã bù hai</b>


Nguyên tắc tổng quát: Dùng n bit biểu diễn số
nguyên có dấu A:


a<sub>n-1</sub>a<sub>n-2</sub>…a<sub>2</sub>a<sub>1</sub>a<sub>0</sub>


† Với A là số dương: bit a<sub>n-1</sub> = 0, các bit còn lại



biểu diễn độ lớn như số không dấu


† Với A là số âm: được biểu diễn bằng số bù hai


</div>
<span class='text_page_counter'>(32)</span><div class='page_container' data-page=32>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.33
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Biểu diễn số dương



† Dạng tổng quát của số dương A:


<i>0a<sub>n-2</sub>…a<sub>2</sub>a<sub>1</sub>a<sub>0</sub></i>


† Giá trị của số dương A:


† Dải biểu diễn cho số dương: 0 đến 2n-1-1


=

=

2
0

2


<i>n</i>
<i>i</i>
<i>i</i>
<i>i</i>

<i>a</i>


<i>A</i>



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.34


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Biểu diễn số âm



† Dạng tổng quát của số âm A:


<i>1a<sub>n-2</sub>…a<sub>2</sub>a<sub>1</sub>a<sub>0</sub></i>


† Giá trị của số âm A:


† Dải biểu diễn cho số âm: -1 đến -2n-1


=

<sub>+</sub>



=

2
0
1

2


2


<i>n</i>
<i>i</i>
<i>i</i>
<i>i</i>
<i>n</i>

<i>a</i>


<i>A</i>



<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>



<b>Biểu diễn tổng quát cho số nguyên có dấu</b>



† Dạng tổng quát của số nguyên A:


<i>an-1an-2…a2a1a0</i>


† Giá trị của A được xác định như sau:


† Dải biểu diễn: từ -(2n-1) đến +(2n-1-1)



=

+



=

2
0
1


1

2

2



<i>n</i>
<i>i</i>
<i>i</i>
<i>i</i>
<i>n</i>
<i>n</i>

<i>a</i>


<i>a</i>


<i>A</i>




<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Các ví dụ



† Ví dụ 1. Biểu diễn các số nguyên có dấu sau


đây bằng 8 bit:


A = +58 ; B = -80
Giải:


A = +58 = 0011 1010


B = -80


Ta có: +80 = 0101 0000
Số bù một = 1010 1111
+ 1
Số bù hai = 1011 0000


</div>
<span class='text_page_counter'>(33)</span><div class='page_container' data-page=33>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.37
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Các ví dụ



† Ví dụ 2: Hãy xác định giá trị của các số nguyên


có dấu được biểu diễn dưới đây:


„ P = 0110 0010



„ Q = 1101 1011


Giải:


„ P = 0110 0010 = 64 + 32 + 2 = +98


„ Q = 1101 1011 = -128+64+16+8+2+1 = -37


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.38
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Với n = 8 bit



Biểu diễn được các giá trị từ -128 đến +127


0000 0000 = 0


0000 0001 = +1


0000 0010 = +2 Chú ý:


0000 0011 = +3 +127 + 1 = -128


… -128 - 1 = +127


0111 1111 = +127 Æ do tràn xảy ra


1000 0000 = - 128



1000 0001 = - 127




1111 1110 = -2


1111 1111 = -1


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.39
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


<b>Trục số học số nguyên có dấu với n = 8 bit</b>


† Trục số học:


† Trục số học máy tính:


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.40
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Với n=16 bit, 32 bit, 64 bit



† Với n=16 bit: biểu diễn từ -32768 đến +32767


„ 0000 0000 0000 0000 = 0


„ 0000 0000 0000 0001 = +1


„ …



„ 0111 1111 1111 1111 = +32767


„ 1000 0000 0000 0000 = - 32768


„ …


„ 1111 1111 1111 1111 = -1


</div>
<span class='text_page_counter'>(34)</span><div class='page_container' data-page=34>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.41
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Chuyển đổi từ byte thành word



† Đối với số dương:


+19 = 0001 0011 (8 bit)


+19 = 0000 0000 0001 0011 (16 bit)
Ỉ thêm 8 bit 0 bên trái


† Đối với số âm:


- 19 = 1110 1101 (8 bit)


- 19 = 1111 1111 1110 1101 (16 bit)


Ỉ thêm 8 bit 1 bên trái


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.42
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>



3. Biểu diễn số nguyên theo mã BCD



† Binary Coded Decimal Code


† Dùng 4 bit để mã hoá cho các chữ số thập


phân từ 0 đến 9


0 Ỉ 0000 5 Ỉ 0101


1 Ỉ 0001 6 Ỉ 0110


2 Ỉ 0010 7 Ỉ 0111


3 Ỉ 0011 8 Ỉ 1000


4 Ỉ 0100 9 Ỉ 1001


† Có 6 tổ hợp khơng sử dụng:


1010, 1011, 1100, 1101, 1110, 1111


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Ví dụ số BCD



† 35 Ỉ 0011 0101<sub>BCD</sub>
† 61 Ỉ 0110 0001<sub>BCD</sub>



† 1087 Æ 0001 0000 1000 0111<sub>BCD</sub>
† 9640 Æ 1001 0110 0100 0000<sub>BCD</sub>


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Các kiểu lưu trữ số BCD



† BCD khơng gói (Unpacked BCD): Mỗi số BCD


4-bit được lưu trữ trong 4-bit thấp của mỗi
byte.


„ Ví dụ: Số 35 được lưu trữ như sau:


† BCD gói (Packed BCD): Hai số BCD được lưu


trữ trong 1 byte.


„ Ví dụ: số 35 được lưu trữ như sau:


0 0 1 1 0 1 0 1


</div>
<span class='text_page_counter'>(35)</span><div class='page_container' data-page=35>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.45
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


<b>3.4. Thực hiện các phép tốn số học với số nguyên</b>


1. Phép cộng số nguyên không dấu



Bộ cộng n-bit



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.46
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Ngun tắc cộng số ngun khơng dấu


Khi cộng hai số nguyên không dấu n-bit, kết
quả nhận được là n-bit:


† Nếu khơng có nhớ ra khỏi bit cao nhất thì kết quả


nhận được ln ln đúng (Cout = 0).


† Nếu có nhớ ra khỏi bit cao nhất thì kết quả nhận


được là sai, ⇔ có tràn nhớ ra ngoài (Cout = 1).


† <i>Tràn nhớ ra ngoài (Carry Out) xảy ra khi tổng >2</i>n-1


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.47
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Ví dụ cộng số ngun khơng dấu



† 57 = 0011 1001


+ 34 = + 0010 0010


91 0101 1011 = 64+16+8+2+1= 91 Ỉ đúng


† 209 = 1101 0001



+ 73 = 0100 1001


282 1 0001 1010 = 16 + 8 + 2 = 26 Ỉ sai
Ỉ có tràn nhớ ra ngồi (Cout = 1)


Để có kết quả đúng ta thực hiện cộng theo 16-bit:
209 = 0000 0000 1101 0001


+ 73 = + 0000 0000 0100 1001


0000 0001 0001 1010 = 256+16+8+2 = 282


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.48
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


2. Phép đảo dấu



† Ta có:


+ 37 = 0010 0101


bù một = 0101 1010


+ 1


bù hai = 1101 1011 = -37


† Lấy bù hai của số âm:



- 37 = 1101 1011


bù một = 0010 0100


+ 1


bù hai = 0010 0101 = +37


† Kết luận: Phép đảo dấu trong máy tính thực chất là lấy


</div>
<span class='text_page_counter'>(36)</span><div class='page_container' data-page=36>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.49
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


3. Cộng số ngun có dấu



Khi cộng 2 số ngun có dấu n-bit khơng quan
tâm đến bit C<sub>out</sub>và kết quả nhận được là n-bit:


† Cộng 2 số khác dấu: kết quả luôn luôn đúng.


† Cộng 2 số cùng dấu:


„ Nếu dấu kết quả cùng dấu với các số hạng thì kết quả


là đúng.


„ Nếu kết quả có dấu ngược lại, khi đó có tràn xảy ra


(Overflow) và kết quả là sai.



† Tràn xảy ra khi tổng nằm ngoài dải biểu diễn


[-(2n-1<sub>),+(2</sub>n-1<sub>-1)]</sub>


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.50
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Ví dụ cộng số ngun có dấu khơng tràn



† (+70) = 0100 0110


+ (+42) = 0010 1010


+112 0111 0000 = +112


† (+97) = 0110 0001


+ (- 52) = 1100 1100


+45 1 0010 1101 = +45


† (- 90) = 1010 0110


+ (+36) = 0010 0100


- 54 1100 1010 = -54


† (- 74) = 1011 0110


+ (- 30) = 1110 0010



- 104 1 1001 1000 = -104


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Ví dụ cộng số ngun có dấu bị tràn



† (+75) = 0100 1011


+ (+82) = 0101 0010


+157 1001 1101


= -128 + 16 + 8 + 4 + 1 = -99 Ỉ sai


† (- 104) = 1001 1000


+ (- 43) = 1101 0101


- 147 1 0110 1101


= 64 + 32 + 8 + 4 + 1 = +109 Ỉ sai


† Cả 2 ví dụ trên đều tràn vì tổng nằm ngồi dải biểu diễn


[-128, +127]


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


4. Nguyên tắc thực hiện phép trừ




† Phép trừ 2 số nguyên: X – Y = X + (-Y)


</div>
<span class='text_page_counter'>(37)</span><div class='page_container' data-page=37>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.53
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


5. Nhân số nguyên không dấu



† Các thanh ghi M,


Q, A: n bit


† C: 1 bit


† 2 thừa số là n-bit


Ỉ tích là số 2n-bit
được chứa trong
cặp thanh ghi A, Q


Bắt đầu


Dừng
C 0; A 0
M số bị nhân
Q số nhân; BĐ = n


Q0= 1


C, A A + M



Dịch phải C, A, Q
BĐ BĐ - 1


BĐ = 0
Y
N


Y
N


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.54
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Ví dụ 1011 x 1101 (11 x 13 = 143)



† n = 4
† Số bị nhân


= 1011 Ỉ M


† Số nhân =


1101 Ỉ Q


<b>C</b> <b>A</b> <b>Q</b>


0 0000 1101 / các giá trị khởi đầu /
1011



0 1011 1101 C, A Å A + M


0 0101 1110 Dịch phải 1 bit n = 3
0 0010 1111 Dịch phải 1 bit n = 2


1011


0 1101 1111 C, A Å A + M


0 0110 1111 Dịch phải 1 bit n = 1
1011


1 0001 1111 C, A Å A + M


0 <b>1000</b> <b>1111</b> <b>Dịch phải 1 bit n = 0</b>
+


+


+


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.55
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


6. Nhân số nguyên có dấu



† Phương pháp 1:


1. Chuyển đổi các thừa số thành số dương
2. Nhân 2 số dương như số nguyên không dấu


3. Hiệu chỉnh dấu của kết quả:


† Nếu 2 thừa số cùng dấu Ỉ khơng cần hiệu chỉnh
† Nếu 2 thừa số khác dấu Ỉ đảo dấu kết quả bằng


cách lấy bù 2.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.56
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Nhân số ngun có dấu (tiếp)



† Phương pháp 2:


</div>
<span class='text_page_counter'>(38)</span><div class='page_container' data-page=38>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.57
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Ví dụ (+7) x (-3) = (-21) theo Booth


† n = 4


† Số bị nhân =


0111 Ỉ M


† -M = 1001
† 3<sub>10 </sub> = 0011


-310 = 1101


(Số nhân)ỈQ



<b>A</b> <b>Q</b> <b>Q-1</b>


0000
1001
1001
1100
0111
0011
0001
1001
1010
1101
<b>1110</b>


0 / các giá trị khởi đầu /
1101
1101
1110
1110
1111
1111
0111


0 A Å A - M = A + (-M)
1 Dịch phải, giữ dấu A, n = 3
1 A Å A + M


0 Dịch phải, giữ dấu A, n = 2
0 A Å A - M



1 Dịch phải, giữ dấu A, n = 1


<b>1011</b> 1 <b>Dịch phải, giữ dấu A, n = 0</b>
+


+


+
1


<b>Bỏ đi</b>


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.58
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


7. Chia số nguyên không dấu



Khôi phục A


† Thương chứa trong Q,


† Phần dư chứa trong A


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Ví dụ 7:3 = 2 dư 1



† n = 4



† Số bị chia =


0111 Ỉ Q


† Số chia = 3<sub>10 </sub>


= 0011 Ỉ M


† -M = 1101


<b>A</b> <b>Q</b>
0000
0000
1101
0000
0001
1110
0001
0011
0000
0000
0001


1110 A Å A - M


<b>0001</b> <b>0010</b> <b>Khôi phục A, n = 0</b>
/ các giá trị khởi đầu /
0111
1110
1110


1100
1100
1000
1001
Dịch trái


A Å A - M = A + (-M)
Khôi phục A, n = 3
Dịch trái


A Å A - M


Khôi phục A, n = 2
Dịch trái


A Å A - M


Q0Å 1, n = 1


Dịch trái
0010


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


8. Chia số ngun có dấu



† Sử dụng thuật giải chia số nguyên không dấu
„ Đổi số bị chia và số chia Ỉ dương


„ Chia như số ngun khơng dấu Ỉ thương và



phần dư (đều là số dương)


„ Hiệu chỉnh dấu:


† (+) : (+) Ỉ khơng hiệu chỉnh dấu kết quả
† (+) : (-) Ỉ đảo dấu thương


</div>
<span class='text_page_counter'>(39)</span><div class='page_container' data-page=39>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.61
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


3.5. Số dấu chấm động



<b>1. Ngun tắc chung</b>


† Floating Point Number Ỉ biểu diễn cho số thực
† Tổng quát: một số thực X được biểu diễn theo


kiểu số dấu chấm động như sau:
X = M * RE


„ M là phần định trị (Mantissa),
„ R là cơ số (Radix),


„ E là phần mũ (Exponent).


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.62
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


2. Chuẩn IEEE754/85




† Cơ số R = 2
† Các dạng:


„ Dạng 32-bit


„ Dạng 44-bit


„ Dạng 64-bit


„ Dạng 80-bit


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.63
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Các dạng biểu diễn chính



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.64
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Dạng 32-bit



† S là bit dấu:


„ S = 0 Ỉ Số dương
„ S = 1 Ỉ Số âm


† <i>e (8 bit) là mã excess-127 của phần mũ E:</i>


„ e = E + 127 Ỉ E = e – 127


„ giá trị 127 được gọi là độ lệch (bias)


† m (23 bit) là phần lẻ của phần định trị M:


„ M = 1.m


† Công thức xác định giá trị của số thực:


X = (-1)S


</div>
<span class='text_page_counter'>(40)</span><div class='page_container' data-page=40>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.65
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Ví dụ 1



Xác định giá trị của số thực được biểu diễn
bằng 32-bit như sau:


† 1100 0001 0101 0110 0000 0000 0000 0000


„ S = 1 Ỉ Số âm


„ e = 1000 0010<sub>2</sub>= 130 Ỉ E = 130 – 127 = 3


Vậy:


X = -1.10101100 *23= -1101.011 = -13.375


† 0011 1111 1000 0000 0000 0000 0000 0000 = ?



= +1.0


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.66
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Ví dụ 2



Biểu diễn số thực X = 83.75 về dạng số dấu
chấm động IEEE754 32-bit


<i><b>Giải:</b></i>


† X = 83.75<sub>10</sub>= 1010011.11<sub>2</sub> = 1.01001111 x 26
† Ta có:


„ S = 0 vì đây là số dương


„ E = e-127=6 Ỉe = 127+6=13310= 1000 01012


† Vậy:


X = 0100 0010 1010 0111 1000 0000 0000 0000


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Các quy ước đặc biệt



† Các bit của e bằng 0, các bit của m bằng 0, thì X= ± 0


x000 0000 0000 0000 0000 0000 0000 0000 Ỉ X= ± 0



† Các bit của e bằng 1, các bit của m bằng 0, thì X= ±∞


x111 1111 1000 0000 0000 0000 0000 0000 Æ X= ±∞


† Các bit của e bằng 1, còn m có ít nhất 1 bit bằng 1, thì


nó khơng biểu diễn cho số nào cả (NaN – not a number)


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Dải giá trị biểu diễn



</div>
<span class='text_page_counter'>(41)</span><div class='page_container' data-page=41>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.69
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Dạng 64-bit



† S là bit dấu


† <i>e (11 bit) là mã excess-1023 của phần mũ E:</i>


Ỉ E = e – 1023


† m (52 bit) là phần lẻ của phần định trị M:
† Giá trị của số thực:


X = (-1)S


*1.m*2e-1023



† Dải giá trị biểu diễn: 10-308 đến 10+308


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.70
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Dạng 80-bit



† S là bit dấu


† <i>e (15 bit) là mã excess-16383 của phần mũ E:</i>


Ỉ E = e – 16383


† m (64 bit) là phần lẻ của phần định trị M:
† Giá trị của số thực:


X = (-1)S


*1.m*2e-16383


† Dải giá trị biểu diễn: 10-4932 đến 10+4932


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.71
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


3.6. Biểu diễn ký tự



† Bộ mã ASCII (American Standard Code for



Information Interchange)


† Bộ mã Unicode


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.72
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


1. Bộ mã ASCII



† Do ANSI (American National Standard


Institute) thiết kế


† Bộ mã 8 bit Ỉ có thể mã hóa được 28 =256 ký


tự, có mã từ: 00<sub>16</sub>÷ FF<sub>16 </sub>, trong đó:


</div>
<span class='text_page_counter'>(42)</span><div class='page_container' data-page=42>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.73
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


ASCII


Character



Code



128 ký tự
chuẩn


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.74
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>



Các ký tự chuẩn



† 26 chữ cái hoa ‘A’ đến ‘Z’ có mã từ 4116 đến 5A16 (65


đến 90)


„ ‘A’ Ỉ 0100 0001 = 4116


„ ‘B’ Ỉ 0100 0010 = 4216


„ ...


„ ‘Z’ Ỉ 0101 1010 = 5A16


† 26 chữ cái thường ‘a’ đến ‘z’ có mã từ 61<sub>16</sub> đến 7A<sub>16</sub> (97


đến 122)


„ ‘a’ Ỉ 0110 0001 = 61<sub>16</sub>


„ ‘b’ Ỉ 0110 0010 = 62<sub>16</sub>


„ ...


„ ‘z’ Ỉ 0111 1010 = 7A16


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Các ký tự chuẩn (tiếp)




† 10 chữ số thập phân từ 0 đến 9 có mã từ 30<sub>16</sub>


đến 39<sub>16</sub> (48 đến 57)


„ ‘0’ Ỉ 0011 0000 = 3016


„ ‘1’ Ỉ 0011 0001 = 3116


„ ‘2’ Ỉ 0011 0010 = 3216


„ ...


„ ‘9’ Ỉ 0011 1001 = 3916


<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Các ký tự chuẩn (tiếp)



† Các ký hiệu khác:


„ <b>Các dấu câu: . , : ; ...</b>


„ <b>Các dấu phép toán: + - * / % ...</b>


„ <b>một số ký hiệu thông dụng: &, $, @, #</b>


</div>
<span class='text_page_counter'>(43)</span><div class='page_container' data-page=43>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.77
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>



<b>Các mã điều khiển: có mã 00<sub>16</sub>÷ 1F<sub>16</sub>và 7F<sub>16</sub></b>


† Các mã ký tự điều khiển định dạng (điều khiển màn


hình, máy in …):


„ BS, HT, LF, VT, FF, CR


† Các mã ký tự điều khiển truyền tin:


„ SOH, STX, ETX, EOT, ENQ, ACK, NAK, SYN, ETB


† Các mã ký tự điều khiển phân cách thông tin:


„ FS, GS, RS, US


† Các mã ký tự điều khiển khác:


„ NUL, BEL, SO, SI, DLE, DC1+DC4, CAN, EM, SUB,


ESC, DEL


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.78
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Các ký tự mở rộng: có mã 80

<sub>16</sub>

÷ FF

<sub>16</sub>


† Các ký tự mở rộng được định nghĩa bởi:


„ nhà chế tạo máy tính



„ người phát triển phần mềm


† Ví dụ:


„ Bộ mã ký tự mở rộng của IBM Ỉ IBM-PC.


„ Bộ mã ký tự mở rộng của Apple Ỉ Macintosh.


„ Có thể thay đổi các ký tự mở rộng để mã hóa


cho các ký tự riêng của tiếng Việt, ví dụ như bộ
mã TCVN3.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.79
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


2. Bộ mã hợp nhất Unicode



† Do các hãng máy tính hàng đầu thiết kế
† Bộ mã 16-bit


† Bộ mã đa ngơn ngữ


† Có hỗ trợ các ký tự tiếng Việt


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.80
<i><b>Chương 3: Biểu diễn dữ liệu và số học máy tính</b></i>


Unicode



Character



Code



</div>
<span class='text_page_counter'>(44)</span><div class='page_container' data-page=44>

Chương 4



<b>BỘ XỬ LÝ TRUNG TÂM</b>



(Central Processing Unit - CPU)


<b>Phạm Quang Dũng</b>


Bộ mơn Khoa học máy tính - Khoa CNTT
Trường Đại học Nông nghiệp I – Hà Nội
website: www.hau1.edu.vn/it/pqdung
ĐT: (04) 8766318 DĐ: 0988.149.189


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.2


<i><b>Chương 4: CPU</b></i>


Nội dung chương 4



4.1. Cấu trúc cơ bản của CPU
4.2. Tập lệnh


4.3. Hoạt động của CPU


4.4. Cấu trúc của các bộ xử lý tiên tiến
4.5. Kiến trúc Intel



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.3


<i><b>Chương 4: CPU</b></i>


4.1. Cấu trúc cơ bản của CPU


1. Nhiệm vụ và cấu trúc của CPU


† Nhiệm vụ của CPU


¾ Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộ
nhớ


¾ Giải mã lệnh (Decode Instruction): Xác định thao
tác mà lệnh yêu cầu


¾ Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớ
hoặc các cổng vào-ra


¾ Xử lý dữ liệu (Process Data): thực hiện phép toán số
học hay phép toán logic với các dữ liệu


¾ Ghi dữ liệu (Write Data): ghi dữ liệu ra bộ nhớ hay
cổng vào-ra


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.4


<i><b>Chương 4: CPU</b></i>


</div>
<span class='text_page_counter'>(45)</span><div class='page_container' data-page=45>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.5



<i><b>Chương 4: CPU</b></i>


Các thành phần cơ bản của CPU



† Đơn vị điều khiển (Control Unit – CU)


† Đơn vị số học và logic (Arithmetic and


Logic Unit - ALU)


† Tập thanh ghi (Register File - RF)


† Đơn vị nối ghép bus (Bus Interface Unit


-BIU)


† Bus bên trong (Internal Bus)


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.6


<i><b>Chương 4: CPU</b></i>


2. Đơn vị số học và logic



† Chức năng: Thực hiện các phép toán số


học và phép toán logic:


„ Số học: cộng, trừ, nhân, chia, tăng,



giảm, đảo dấu


„ Logic: AND, OR, XOR, NOT, phép


dịch bit.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.7


<i><b>Chương 4: CPU</b></i>


Mơ hình kết nối ALU



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.8


<i><b>Chương 4: CPU</b></i>


3. Đơn vị điều khiển



† Chức năng


„ Điều khiển nhận lệnh từ bộ nhớ đưa vào


thanh ghi lệnh


„ Tăng nội dung của PC để trỏ sang lệnh kế


tiếp


„ Giải mã lệnh đã được nhận để xác định thao



tác mà lệnh yêu cầu


„ Phát ra các tín hiệu điều khiển thực hiện


lệnh


„ Nhận các tín hiệu yêu cầu từ bus hệ thống


</div>
<span class='text_page_counter'>(46)</span><div class='page_container' data-page=46>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.9


<i><b>Chương 4: CPU</b></i>


Mơ hình kết nối đơn vị điều khiển



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.10


<i><b>Chương 4: CPU</b></i>


Các tín hiệu đưa đến đơn vị điều khiển


† Clock: tín hiệu nhịp từ mạch tạo dao động


bên ngoài.


† Mã lệnh từ thanh ghi lệnh đưa đến để giải


mã.


† Các cờ từ thanh ghi cờ cho biết trạng thái



của CPU.


† Các tín hiệu yêu cầu từ bus điều khiển


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.11


<i><b>Chương 4: CPU</b></i>


Các tín hiệu phát ra từ đơn vị điều khiển


† Các tín hiệu điều khiển bên trong CPU:


„ Điều khiển các thanh ghi


„ Điều khiển ALU


† Các tín hiệu điều khiển bên ngoài CPU:


„ Điều khiển bộ nhớ


„ Điều khiển các môđun vào-ra


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.12


<i><b>Chương 4: CPU</b></i>


4. Tập thanh ghi



† Chức năng và đặc điểm:


„ Tập hợp các thanh ghi nằm trong CPU



„ Chứa các thông tin tạm thời phục vụ cho


hoạt động ở thời điểm hiện tại của CPU


„ Được coi là mức đầu tiên của hệ thống nhớ
„ Tuỳ thuộc vào bộ xử lý cụ thể


„ Số lượng thanh ghi nhiều Ỉ tăng hiệu năng


của CPU


</div>
<span class='text_page_counter'>(47)</span><div class='page_container' data-page=47>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.13


<i><b>Chương 4: CPU</b></i>


Phân loại thanh ghi theo chức năng



† Thanh ghi địa chỉ: quản lý địa chỉ của ngăn


nhớ hay cổng vào-ra.


† Thanh ghi dữ liệu: chứa tạm thời các dữ liệu
† Thanh ghi đa năng: có thể chứa địa chỉ hoặc


dữ liệu.


† Thanh ghi điều khiển/trạng thái: chứa các


thông tin điều khiển và trạng thái của CPU.



† Thanh ghi lệnh: chứa lệnh đang được thực hiện


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.14


<i><b>Chương 4: CPU</b></i>


Một số thanh ghi điển hình



† Các thanh ghi địa chỉ


„ Bộ đếm chương trình PC (Program Counter)


„ Con trỏ dữ liệu DP (Data Pointer)
„ Con trỏ ngăn xếp SP (Stack Pointer)
„ Thanh ghi cơ sở và thanh ghi chỉ số


(Base Register & Index Register)


† Các thanh ghi dữ liệu
† Thanh ghi trạng thái


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.15


<i><b>Chương 4: CPU</b></i>


Bộ đếm chương trình PC



† Cịn được gọi là con trỏ lệnh IP



(Instruction Pointer)


† Giữ địa chỉ của lệnh tiếp theo sẽ được


nhận vào.


† Sau khi một lệnh được nhận vào, nội dung


PC tự động tăng để trỏ sang lệnh kế tiếp.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.16


<i><b>Chương 4: CPU</b></i>


</div>
<span class='text_page_counter'>(48)</span><div class='page_container' data-page=48>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.17


<i><b>Chương 4: CPU</b></i>


Thanh ghi con trỏ dữ liệu



† Chứa địa chỉ của ngăn nhớ dữ liệu mà


CPU muốn truy nhập


† Thường có một số thanh ghi con trỏ dữ


liệu


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.18



<i><b>Chương 4: CPU</b></i>


Minh họa thanh ghi con trỏ dữ liệu



DP


Dữ liệu
Dữ liệu cần đọc/ghi


Dữ liệu
Dữ liệu
Dữ liệu
Dữ liệu
Dữ liệu


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.19


<i><b>Chương 4: CPU</b></i>


Ngăn xếp (Stack)



† Ngăn xếp là vùng nhớ có cấu trúc LIFO


(Last In – First Out)


† Ngăn xếp thường dùng để phục vụ cho


chương trình con


† Đáy ngăn xếp là một ngăn nhớ xác định


† Đỉnh ngăn xếp là thông tin nằm ở vị trí


trên cùng trong ngăn xếp


† Đỉnh ngăn xếp có thể bị thay đổi


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.20


<i><b>Chương 4: CPU</b></i>


Con trỏ ngăn xếp SP (Stack Pointer)



† SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếp
† Khi cất một thông tin vào ngăn xếp:


„ Nội dung của SP tự động giảm


„ Thông tin được cất vào ngăn nhớ được trỏ bởi SP
† Khi lấy một thông tin ra khỏi ngăn xếp:


„ Thông tin được đọc từ ngăn nhớ được trỏ bởi SP
„ Nội dung của SP tự động tăng


</div>
<span class='text_page_counter'>(49)</span><div class='page_container' data-page=49>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.21


<i><b>Chương 4: CPU</b></i>


Minh họa con trỏ ngăn xếp SP



SP Đỉnh Stack



Đáy Stack


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.22


<i><b>Chương 4: CPU</b></i>


Thanh ghi cơ sở và thanh ghi chỉ số



† Thanh ghi cơ sở: chứa địa chỉ của ngăn


nhớ cơ sở (địa chỉ cơ sở)


† Thanh ghi chỉ số: chứa độ lệch địa chỉ giữa


ngăn nhớ mà CPU cần truy nhập so với
ngăn nhớ cơ sở (chỉ số)


† Địa chỉ của ngăn nhớ cần truy nhập = địa


chỉ cơ sở + chỉ số


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.23


<i><b>Chương 4: CPU</b></i>


Minh họa thanh ghi cơ sở và thanh ghi chỉ số


Thanh ghi cơ sở



Thanh ghi chỉ số


Ngăn nhớ cơ sở


Ngăn nhớ cần truy nhập


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.24


<i><b>Chương 4: CPU</b></i>


Các thanh ghi dữ liệu



† Chứa các dữ liệu tạm thời hoặc các kết


quả trung gian


† Cần có nhiều thanh ghi dữ liệu


† Các thanh ghi số nguyên: 8, 16, 32, 64


bit


</div>
<span class='text_page_counter'>(50)</span><div class='page_container' data-page=50>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.25


<i><b>Chương 4: CPU</b></i>


Thanh ghi trạng thái (Status Register)



† Còn gọi là thanh ghi cờ (Flag Register)
† Chứa các thông tin trạng thái của CPU



„ Các cờ phép toán: báo hiệu trạng thái của kết quả


phép toán


„ Các cờ điều khiển: biểu thị trạng thái điều khiển của


CPU


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.26


<i><b>Chương 4: CPU</b></i>


Ví dụ cờ phép toán



† Cờ Zero (cờ rỗng): được thiết lập lên 1 khi kết


quả của phép toán bằng 0.


† Cờ Sign (cờ dấu): được thiết lập lên 1 khi kết quả


phép toán nhỏ hơn 0


† Cờ Carry (cờ nhớ): được thiết lập lên 1 nếu phép


tốn có nhớ ra ngồi bit cao nhất Ỉ cờ báo tràn
với số không dấu.


† Cờ Overflow (cờ tràn): được thiếp lập lên 1 nếu



cộng hai số nguyên cùng dấu mà kết quả có dấu
ngược lại Ỉ cờ báo tràn với số có dấu.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.27


<i><b>Chương 4: CPU</b></i>


Ví dụ cờ điều khiển



† Cờ Interrupt (Cờ cho phép ngắt)


„ Nếu IF = 1 Ỉ CPU ở trạng thái cho phép ngắt với tín


hiệu yêu cầu ngắt từ bên ngoài gửi tới


„ Nếu IF = 0 Ỉ CPU ở trạng thái cấm ngắt với tín hiệu


u cầu ngắt từ bên ngồi gửi tới


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.28


<i><b>Chương 4: CPU</b></i>


4.2. Tập lệnh



1. Giới thiệu chung về tập lệnh


† Mỗi bộ xử lý có một tập lệnh xác định


† Tập lệnh thường có hàng chục đến hàng trăm lệnh


† Mỗi lệnh là một chuỗi số nhị phân mà bộ xử lý hiểu


được để thực hiện một thao tác xác định


† Các lệnh được mô tả bằng các ký hiệu gợi nhớ Ỉ


</div>
<span class='text_page_counter'>(51)</span><div class='page_container' data-page=51>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.29


<i><b>Chương 4: CPU</b></i>


Các thành phần của lệnh máy



† Mã thao tác (operation code → opcode):


mã hóa cho thao tác mà bộ xử lý phải thực
hiện


† Địa chỉ toán hạng: chỉ ra nơi chứa các toán


hạng mà thao tác sẽ tác động


„ Toán hạng nguồn: dữ liệu vào của thao tác
„ Tốn hạng đích: dữ liệu ra của thao tác


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.30


<i><b>Chương 4: CPU</b></i>


2. Các kiểu thao tác




† Chuyển dữ liệu


† Xử lý số học với số nguyên
† Xử lý logic


† Điều khiển vào-ra


† Chuyển điều khiển (rẽ nhánh)
† Điều khiển hệ thống


† Xử lý số dấu chấm động
† Xử lý các dữ liệu chuyên dụng


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.31


<i><b>Chương 4: CPU</b></i>


Các lệnh chuyển dữ liệu



† MOVE Copy dữ liệu từ nguồn đến đích
† LOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lý
† STORE Cất dữ liệu từ bộ xử lý đến bộ nhớ
† EXCHANGE Trao đổi nội dung của nguồn và đích
† CLEAR Chuyển các bit 0 vào tốn hạng đích
† SET Chuyển các bit 1 vào tốn hạng đích
† PUSH Cất nội dung tốn hạng nguồn vào


ngăn xếp


† POP Lấy nội dung đỉnh ngăn xếp đưa đến



tốn hạng đích


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.32


<i><b>Chương 4: CPU</b></i>


Các lệnh số học



† ADD Cộng hai toán hạng


</div>
<span class='text_page_counter'>(52)</span><div class='page_container' data-page=52>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.33


<i><b>Chương 4: CPU</b></i>


Các lệnh logic



† AND Thực hiện phép AND hai toán hạng
† OR Thực hiện phép OR hai toán hạng
† XOR Thực hiện phép XOR hai toán hạng
† NOT Đảo bit của toán hạng (lấy bù 1)


† TEST Thực hiện phép AND 2 toán hạng để lập cờ
† SHIFT Dịch trái (phải) toán hạng


† ROTATE Quay trái (phải) toán hạng


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.34


<i><b>Chương 4: CPU</b></i>



Minh hoạ các lệnh AND, OR, XOR



† Giả sử có hai thanh ghi chứa dữ liệu như sau:


(R1) = 1010 1010


(R2) = 0000 1111


† R1 Å (R1) AND (R2) = 0000 1010


Phép toán AND dùng để xoá một số bit và giữ nguyên
một số bit còn lại của toán hạng.


† R1 Å (R1) OR (R2) = 1010 1111


Phép toán OR dùng để thiết lập một số bit và giữ
ngun một số bit cịn lại của tốn hạng.


† R1 Å (R1) XOR (R2) = 1010 0101


Phép toán XOR dùng để đảo một số bit và giữ nguyên
một số bit cịn lại của tốn hạng.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.35


<i><b>Chương 4: CPU</b></i>


Các lệnh vào ra chuyên dụng




† INPUT Copy dữ liệu từ một cổng xác


định đến đích


† OUTPUT Copy dữ liệu từ nguồn đến


một cổng xác định


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.36


<i><b>Chương 4: CPU</b></i>


Các lệnh chuyển điều khiển



† JUMP (BRANCH) - Lệnh nhảy không điều kiện:


„ Nạp vào PC một địa chỉ xác định


† JUMP CONDITIONAL - Lệnh nhảy có điều kiện:


„ Điều kiện đúng Ỉ nạp PC một địa chỉ xác định
„ Điều kiện sai Ỉ khơng làm gì cả


† CALL - Lệnh gọi chương trình con:


„ Cất nội dung của PC (địa chỉ trở về) ra một vị trí xác định


(thường ở Stack)


„ Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình con



† RETURN - Lệnh trở về từ chương trình con:


„ Khôi phục địa chỉ trở về trả lại cho PC để trở về chương


</div>
<span class='text_page_counter'>(53)</span><div class='page_container' data-page=53>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.37


<i><b>Chương 4: CPU</b></i>


Lệnh rẽ nhánh không điều kiện



† Chuyển tới thực hiện lệnh


ở vị trí có địa chỉ XXX:
PC ÅXXX


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.38


<i><b>Chương 4: CPU</b></i>


Lệnh rẽ nhánh có điều kiện



† Trong lệnh có kèm theo điều kiện
† Kiểm tra điều kiện trong lệnh:


„ Nếu điều kiện đúng Ỉ chuyển tới thực hiện lệnh ở vị


trí có địa chỉ XXX
PC Å XXX



„ Nếu điều kiện sai Ỉ chuyển sang thực hiện lệnh kế


tiếp


† Điều kiện thường được kiểm tra thơng qua các cờ
† Có nhiều lệnh rẽ nhánh có điều kiện


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.39


<i><b>Chương 4: CPU</b></i>


Minh họa lệnh rẽ nhánh có điều khiện



Lệnh


Lệnh kế tiếp
Lệnh rẽ nhánh XXX


Lệnh
Lệnh


Lệnh
Lệnh


...


Lệnh
XXX


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.40



<i><b>Chương 4: CPU</b></i>


Lệnh CALL và RETURN



‰ Lệnh gọi chương trình con: lệnh CALL


„ Cất nội dung PC (chứa địa chỉ của lệnh kế tiếp) ra


Stack


„ Nạp vào PC địa chỉ của lệnh đầu tiên của chương


trình con được gọi


Ỉ Bộ xử lý được chuyển sang thực hiện chương trình


con tương ứng


‰ Lệnh trở về từ chương trình con: lệnh RETURN


</div>
<span class='text_page_counter'>(54)</span><div class='page_container' data-page=54>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.41


<i><b>Chương 4: CPU</b></i>


Minh họa lệnh CALL và RETURN



Lệnh


Lệnh kế tiếp


CALL CTcon


Lệnh


RETURN
Lệnh


...


Lệnh


CTcon


Lệnh đầu tiên của CTcon


...


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.42


<i><b>Chương 4: CPU</b></i>


Các lệnh điều khiển hệ thống



† NO OPERATION Khơng thực hiện gì cả
† HALT Dừng thực hiện chương trình


† WAIT Tạm dừng thực hiện chương trình, lặp


kiểm tra điều kiện cho đến khi thoả mãn
thì tiếp tục thực hiện



† LOCK Cấm khơng cho xin chuyển nhượng bus
† UNLOCK Cho phép xin chuyển nhượng bus


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.43


<i><b>Chương 4: CPU</b></i>


3. Các phương pháp định địa chỉ (addressing modes)


Khái niệm về định địa chỉ (addressing)


† Toán hạng của lệnh có thể là:


„ Một giá trị cụ thể


„ Nội dung của thanh ghi


„ Nội dung của ngăn nhớ hoặc cổng vào-ra


† Phương pháp định địa chỉ là cách thức địa


chỉ hoá trong trường địa chỉ của lệnh để
xác định toán hạng.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.44


<i><b>Chương 4: CPU</b></i>


Các phương pháp định địa chỉ thơng dụng



† Định địa chỉ tức thì
† Định địa chỉ thanh ghi
† Định địa chỉ trực tiếp


</div>
<span class='text_page_counter'>(55)</span><div class='page_container' data-page=55>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.45


<i><b>Chương 4: CPU</b></i>


Định địa chỉ tức thì



† Tốn hạng nằm ngay trong Trường địa chỉ của lệnh
† Chỉ có thể là tốn hạng nguồn


† Ví dụ:


ADD R1,5 ; R1 Å R1+5


† Không tham chiếu bộ nhớ
† Truy nhập toán hạng rất nhanh
† Dải giá trị của toán hạng bị hạn chế
† Sơ đồ định địa chỉ tức thì:


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.46


<i><b>Chương 4: CPU</b></i>


Định địa chỉ thanh ghi



† Tốn hạng được chứa trong thanh ghi có tên trong



Trường địa chỉ của lệnh


† Ví dụ:


ADD R1, R2 ; R1 Å R1+R2


† Số lượng thanh ghi ít Ỉ Trường địa chỉ chỉ cần ít bit
† Khơng tham chiếu bộ nhớ


† Truy nhập toán hạng nhanh


† Tăng số lượng thanh ghi Æ hiệu quả hơn


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.47


<i><b>Chương 4: CPU</b></i>


Sơ đồ định địa chỉ thanh ghi



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.48


<i><b>Chương 4: CPU</b></i>


Định địa chỉ trực tiếp



† Toán hạng là ngăn nhớ có địa chỉ được chỉ


ra trực tiếp trong Trường địa chỉ của lệnh



† Ví dụ: ADD R1, A ; R1 Å R1+(A)


„ Cộng nội dung thanh ghi R1 với nội dung


của ngăn nhớ có địa chỉ là A


„ Tìm tốn hạng trong bộ nhớ ở địa chỉ A


† CPU tham chiếu bộ nhớ một lần để truy


</div>
<span class='text_page_counter'>(56)</span><div class='page_container' data-page=56>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.49


<i><b>Chương 4: CPU</b></i>


Sơ đồ định địa chỉ trực tiếp



Mã thao tác Địa chỉ


Toán hạng


Bộ nhớ


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.50


<i><b>Chương 4: CPU</b></i>


Định địa chỉ gián tiếp qua thanh ghi


† Toán hạng là ngăn nhớ có địa chỉ nằm


trong thanh ghi



† Trường địa chỉ của lệnh cho biết tên thanh


ghi đó


† Thanh ghi có thể là ngầm định


† <i>Thanh ghi này được gọi là thanh ghi con trỏ</i>
† Vùng nhớ có thể được tham chiếu là lớn


(2n<sub>), (với n là độ dài của thanh ghi)</sub>


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.51


<i><b>Chương 4: CPU</b></i>


Sơ đồ định địa chỉ gián tiếp qua thanh ghi
Mã thao tác Tên thanh ghi


Toán hạng


Bộ nhớ
Địa chỉ


Tập thanh ghi


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.52


<i><b>Chương 4: CPU</b></i>



Định địa chỉ gián tiếp qua ngăn nhớ


† Ngăn nhớ được trỏ bởi Trường địa chỉ của


lệnh chứa địa chỉ của tốn hạng


† Có thể gián tiếp nhiều lần


† Giống như khái niệm biến con trỏ và biến


động trong lập trình


† CPU phải thực hiện tham chiếu bộ nhớ


nhiều lần để tìm tốn hạng Ỉ chậm


</div>
<span class='text_page_counter'>(57)</span><div class='page_container' data-page=57>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.53


<i><b>Chương 4: CPU</b></i>


Sơ đồ định địa chỉ gián tiếp qua ngăn nhớ
Mã thao tác Địa chỉ


Địa chỉ


Toán hạng


Bộ nhớ


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.54



<i><b>Chương 4: CPU</b></i>


Định địa chỉ dịch chuyển



† Để xác định toán hạng Trường địa chỉ của


lệnh chứa hai thành phần:


„ Tên thanh ghi


„ Hằng số


† Địa chỉ của toán hạng = nội dung thanh ghi


+ hằng số


† Thanh ghi có thể được ngầm định


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.55


<i><b>Chương 4: CPU</b></i>


Sơ đồ định địa chỉ dịch chuyển



Mã thao tác Tên thanh ghi


Toán hạng


Bộ nhớ
Tập thanh ghi



Hằng số


+



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.56


<i><b>Chương 4: CPU</b></i>


Các dạng của định địa chỉ dịch chuyển



† Địa chỉ hoá tương đối với PC


„ Thanh ghi là Bộ đếm chương trình PC


„ Tốn hạng có địa chỉ cách ngăn nhớ được trỏ bởi PC


một độ lệch xác định


† Định địa chỉ cơ sở


„ Thanh ghi chứa địa chỉ cơ sở
„ Hằng số là chỉ số


</div>
<span class='text_page_counter'>(58)</span><div class='page_container' data-page=58>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.57


<i><b>Chương 4: CPU</b></i>


4.3. Hoạt động của CPU


1. Chu trình lệnh


„ Nhận lệnh


„ Giải mã lệnh


„ Nhận toán hạng


„ Thực hiện lệnh


„ Cất toán hạng


„ Ngắt


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.58


<i><b>Chương 4: CPU</b></i>

Nhận lệnh



† CPU đưa địa chỉ của lệnh cần nhận từ bộ


đếm chương trình PC ra bus địa chỉ


† CPU phát tín hiệu điều khiển đọc bộ nhớ
† Lệnh từ bộ nhớ được đặt lên bus dữ liệu và


được CPU copy vào thanh ghi lệnh IR


† CPU tăng nội dung PC để trỏ sang lệnh kế


tiếp



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.59


<i><b>Chương 4: CPU</b></i>


Sơ đồ mơ tả q trình nhận lệnh



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.60


<i><b>Chương 4: CPU</b></i>

Giải mã lệnh



† Lệnh từ thanh ghi lệnh IR được đưa đến


đơn vị điều khiển


† Đơn vị điều khiển tiến hành giải mã lệnh để


xác định thao tác phải thực hiện


</div>
<span class='text_page_counter'>(59)</span><div class='page_container' data-page=59>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.61


<i><b>Chương 4: CPU</b></i>

Nhận dữ liệu



† CPU đưa địa chỉ của toán hạng ra bus địa


chỉ


† CPU phát tín hiệu điều khiển đọc


† Toán hạng được đọc vào CPU
† Tương tự như nhận lệnh


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.62


<i><b>Chương 4: CPU</b></i>


Nhận dữ liệu gián tiếp



† CPU đưa địa chỉ ra bus địa chỉ
† CPU phát tín hiệu điều khiển đọc


† Nội dung ngăn nhớ được đọc vào CPU, đó


chính là địa chỉ của tốn hạng


† Địa chỉ này được CPU phát ra bus địa chỉ để


tìm ra tốn hạng


† CPU phát tín hiệu điều khiển đọc
† Tốn hạng được đọc vào CPU


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.63


<i><b>Chương 4: CPU</b></i>


Sơ đồ nhận tốn hạng gián tiếp



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.64



<i><b>Chương 4: CPU</b></i>


Thực hiện lệnh



† Có nhiều dạng tuỳ thuộc vào lệnh
† Có thể là:


„ Đọc/Ghi bộ nhớ


„ Vào/Ra


„ Chuyển giữa các thanh ghi
„ Thao tác số học/logic


</div>
<span class='text_page_counter'>(60)</span><div class='page_container' data-page=60>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.65


<i><b>Chương 4: CPU</b></i>


Ghi toán hạng



† CPU đưa địa chỉ ra bus địa chỉ


† CPU đưa dữ liệu cần ghi ra bus dữ liệu
† CPU phát tín hiệu điều khiển ghi


† Dữ liệu trên bus dữ liệu được copy đến vị trí


xác định



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.66


<i><b>Chương 4: CPU</b></i>


Sơ đồ mơ tả q trình ghi tốn hạng



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.67


<i><b>Chương 4: CPU</b></i>


Ngắt



† Nội dung của bộ đếm chương trình PC (địa chỉ trở


về sau khi ngắt) được đưa ra bus dữ liệu


† CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn


xếp SP) ra bus địa chỉ


† CPU phát tín hiệu điều khiển ghi bộ nhớ


† Địa chỉ trở về trên bus dữ liệu được ghi ra vị trí xác


định (ở ngăn xếp)


† Địa chỉ lệnh đầu tiên của chương trình con điều


khiển ngắt được nạp vào PC



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.68


<i><b>Chương 4: CPU</b></i>


</div>
<span class='text_page_counter'>(61)</span><div class='page_container' data-page=61>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.69


<i><b>Chương 4: CPU</b></i>


2. Đường ống lệnh (Instruction Pipelining)


† Chia chu trình lệnh thành các công đoạn và cho phép


thực hiện gối lên nhau (như dây chuyền lắp ráp)


† Chẳng hạn có 6 công đoạn:


„ Nhận lệnh (Fetch Instruction – FI)
„ Giải mã lệnh (Decode Instruction – DI)


„ Tính địa chỉ toán hạng (Calculate Operand Address – CO)
„ Nhận toán hạng (Fetch Operands – FO)


„ Thực hiện lệnh (Execute Instruction – EI)
„ Ghi toán hạng (Write Operands – WO)


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.70


<i><b>Chương 4: CPU</b></i>


Biểu đồ thời gian của đường ống lệnh




Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.71


<i><b>Chương 4: CPU</b></i>


Các xung đột của đường ống lệnh



† Xung đột cấu trúc: do nhiều công đoạn


dùng chung một tài nguyên


† Xung đột dữ liệu: lệnh sau sử dụng dữ liệu


kết quả của lệnh trước


† Xung đột điều khiển: do rẽ nhánh gây ra


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.72


<i><b>Chương 4: CPU</b></i>


</div>
<span class='text_page_counter'>(62)</span><div class='page_container' data-page=62>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.73


<i><b>Chương 4: CPU</b></i>


Các đơn vị xử lý dữ liệu


† Các đơn vị số nguyên


† Các đơn vị số dấu chấm động
† Các đơn vị chức năng đặc biệt



„ Đơn vị xử lý dữ liệu âm thanh
„ Đơn vị xử lý dữ liệu hình ảnh
„ Đơn vị xử lý dữ liệu vector


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.74


<i><b>Chương 4: CPU</b></i>

Bộ nhớ cache



† Được tích hợp trên chip vi xử lý
† Bao gồm hai mức cache


„ Cache L1 gồm hai phần tách rời:
† Cache lệnh


† Cache dữ liệu


Ỉ Giải quyết xung đột khi nhận lệnh và dữ liệu


„ Cache L2


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.75


<i><b>Chương 4: CPU</b></i>


Đơn vị quản lý bộ nhớ



† Chuyển đổi địa chỉ ảo thành địa chỉ vật lý
† Cung cấp cơ chế phân trang/phân đoạn


† Cung cấp chế độ bảo vệ bộ nhớ


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.76


<i><b>Chương 4: CPU</b></i>


4.5. Kiến trúc Intel



† Kiến trúc 4-bit: 4004


† Kiến trúc 8-bit: 8008, 8080, 8085


† Kiến trúc 16-bit: 8086/8088, 80186, 80286
† Kiến trúc 32-bit: 80386, 80486,


Pentium, Pentium II
Celeron, Pentium III,
Pentium IV


</div>
<span class='text_page_counter'>(63)</span><div class='page_container' data-page=63>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.77


<i><b>Chương 4: CPU</b></i>


1. Kiến trúc 16-bit (IA-16)


† Các thanh ghi bên trong: 16-bit


† Xử lý các phép toán số nguyên với 16-bit
† Quản lý bộ nhớ theo đoạn 64 KBytes
† Mở đầu cho dòng máy tính IBM-PC



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.78


<i><b>Chương 4: CPU</b></i>


2. Kiến trúc 32-bit (IA-32)



† Các thanh ghi bên trong: 32 bit


† Xử lý các phép toán số nguyên với 32-bit
† Có 3 chế độ làm việc


„ Chế độ 8086 thực (Real 8086 mode): làm việc


như một bộ xử lý 8086


„ Chế độ 8086 ảo (Virtual 8086 mode): làm việc


như nhiều bộ xử lý 8086 (đa nhiệm 16-bit)


„ Chế độ bảo vệ (Protected mode)
† Đa nhiệm 32-bit


† Quản lý bộ nhớ ảo


† Xử lý các phép toán số dấu chấm động (từ


80486)


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.79



<i><b>Chương 4: CPU</b></i>


3. Kiến trúc 64-bit (IA-64)


† Các thanh ghi bên trong: 64 bit


† Xử lý các phép toán số nguyên với 64-bit
† Xử lý các phép tốn số dấu chấm động
† Khơng tương thích phần cứng với các bộ xử


lý trước đó


† Tương thích phần mềm bằng cách giả lập


</div>
<span class='text_page_counter'>(64)</span><div class='page_container' data-page=64>

Chương 5



<b>BỘ NHỚ MÁY TÍNH</b>



<b>Phạm Quang Dũng</b>


Bộ mơn Khoa học máy tính - Khoa CNTT
Trường Đại học Nông nghiệp I – Hà Nội
website: www.hau1.edu.vn/it/pqdung
ĐT: (04) 8766318 DĐ: 0988.149.189


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.2


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Nội dung chương 5




† 5.1. Tổng quan về hệ thống nhớ
† 5.2. Bộ nhớ bán dẫn


† 5.3. Bộ nhớ chính
† 5.4. Bộ nhớ cache
† 5.5. Bộ nhớ ngoài


† 5.6. Hệ thống nhớ trên máy tính cá nhân


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.3


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


5.1. Tổng quan về hệ thống nhớ



1. Các đặc trưng của hệ thống nhớ


† Vị trí


„ Bên trong CPU:


† tập thanh ghi


„ Bộ nhớ trong


† bộ nhớ chính
† bộ nhớ cache


„ Bộ nhớ ngoài: các thiết bị nhớ
† Dung lượng



„ Độ dài từ nhớ (tính bằng bit: 16, 32 bit)
„ Số lượng từ nhớ


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.4


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Các đặc trưng của hệ thống nhớ (tiếp)


† Đơn vị truyền


„ Từ nhớ (word)


„ Khối nhớ (block)


† Phương pháp truy nhập


„ Truy nhập tuần tự (băng từ)
„ Truy nhập trực tiếp (các loại đĩa)


„ Truy nhập ngẫu nhiên (bộ nhớ bán dẫn)


</div>
<span class='text_page_counter'>(65)</span><div class='page_container' data-page=65>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.5


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Các đặc trưng của hệ thống nhớ (tiếp)


† Hiệu năng


„ Thời gian truy nhập



„ Chu kỳ nhớ


„ Tốc độ truyền


† Kiểu vật lý


„ Bộ nhớ bán dẫn


„ Bộ nhớ từ


„ Bộ nhớ quang


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.6


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Các đặc trưng của hệ thống nhớ (tiếp)


† Các đặc tính vật lý


„ Khả biến/Khơng khả biến


(volatile/nonvolatile)


„ Xóa được/Khơng xóa được


† Tổ chức


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.7



<i><b>Chương 5: Bộ nhớ máy tính</b></i>


2. Phân cấp hệ thống nhớ



Từ trái sang phải:


† dung lượng tăng dần
† tốc độ giảm dần
† giá thành/1 bit giảm dần


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.8


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


5.2. Bộ nhớ bán dẫn



1. Phân loại


<b>Kiểu bộ nhớ</b> <b>Tiêu </b>
<b>chuẩn</b>


<b>Khả năng </b>


<b>xóa</b> <b>Cơ chế ghi</b>


<b>Tính khả</b>
<b>biến</b>


Read Only Memory



(ROM) Mặt nạ


Programmable ROM
(PROM)


Erasable PROM
(EPROM)


Bằng tia cực
tím, cả chip
Electrically Erasable


PROM (EEPROM)


Bằng điện,
mức từng byte
Flash Memory Bằng điện,


mức từng khối
Random Access


Memory (RAM)


Bằng điện,


mức từng byte Khả biến
Bộ nhớ


đọc-ghi
Bộ nhớ


hầu như


chỉ đọc Bằng điện


</div>
<span class='text_page_counter'>(66)</span><div class='page_container' data-page=66>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.9


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


ROM (Read Only Memory)



† Bộ nhớ không khả biến
† Lưu trữ các thơng tin sau:


„ Thư viện các chương trình con


„ Các chương trình điều khiển hệ thống (BIOS)


„ Các bảng chức năng


„ Vi chương trình


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.10


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Các kiểu ROM



† ROM mặt nạ:


„ thông tin được ghi khi sản xuất


„ rất đắt


† PROM (Programmable ROM)


„ Cần thiết bị chuyên dụng để ghi bằng


chương trình → chỉ ghi được 1 lần


† EPROM (Erasable PROM)


„ Cần thiết bị chuyên dụng để ghi bằng


chương trình → ghi được nhiều lần


„ Trước khi ghi lại, xóa bằng tia cực tím


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.11


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Các kiểu ROM (tiếp)



† EEPROM (Electrically Erasable PROM)


„ Có thể ghi theo từng byte


„ Xóa bằng điện


† Flash Memory (Bộ nhớ cực nhanh)



„ Ghi theo khối


„ Xóa bằng điện


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.12


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


RAM (Random Access Memory)



† Bộ nhớ đọc-ghi (Read/Write Memory)
† Khả biến


</div>
<span class='text_page_counter'>(67)</span><div class='page_container' data-page=67>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.13


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


SRAM (Static RAM) - RAM tĩnh



† Các bit được lưu trữ bằng các Flip-Flop


→ thông tin ổn định


† Cấu trúc phức tạp
† Dung lượng chip nhỏ
† Tốc độ nhanh


† Đắt tiền


† Dùng làm bộ nhớ cache



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.14


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


DRAM (Dynamic RAM) - RAM động



† Các bit được lưu trữ trên tụ điện


→ cần phải có mạch làm tươi


† Cấu trúc đơn giản
† Dung lượng lớn
† Tốc độ chậm hơn
† Rẻ tiền hơn


† Dùng làm bộ nhớ chính


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.15


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Các DRAM tiên tiến



† Enhanced DRAM
† Cache DRAM


† Synchronous DRAM (SDRAM): làm việc


được đồng bộ bởi xung đồng hồ



† DDR-SDRAM (Double Data Rate SDRAM)
† Rambus DRAM (RDRAM)


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.16


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


2. Tổ chức của chip nhớ



</div>
<span class='text_page_counter'>(68)</span><div class='page_container' data-page=68>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.17


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Các tín hiệu của chip nhớ



† Các đường địa chỉ: A<sub>n-1</sub>÷ A<sub>0</sub>→ có 2n từ nhớ
† Các đường dữ liệu: D<sub>m-1</sub> ÷ D<sub>0</sub> → độ dài từ


nhớ = m bit


† Dung lượng chip nhớ = 2nxm bit
† Các đường điều khiển:


„ Tín hiệu chọn chip CS (Chip Select)


„ Tín hiệu điều khiển đọc OE (Output Enable)
„ Tín hiệu điều khiển ghi WE (Write Enable)


Các tín hiệu điều khiển tích cực với mức 0



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.18


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Tổ chức của DRAM



† Dùng n đường địa chỉ dồn kênh → cho phép


truyền 2n bit địa chỉ


† Tín hiệu chọn địa chỉ hàng RAS


(Row Address Select)


† Tín hiệu chọn địa chỉ cột CAS


(Column Address Select)


† Dung lượng của DRAM = 22nxm bit


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.19


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Chip nhớ



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.20


<i><b>Chương 5: Bộ nhớ máy tính</b></i>



3. Thiết kế mơ-đun nhớ bán dẫn



† Dung lượng chip nhớ = 2nxm bit
† Cần thiết kế để tăng dung lượng:


</div>
<span class='text_page_counter'>(69)</span><div class='page_container' data-page=69>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.21


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Tăng độ dài từ nhớ



VD1:


† Cho chip nhớ SRAM 4K x4 bit


† Thiết kế mô-đun nhớ 4K x8 bit
Giải:


† Dung lượng chip nhớ = 212x4 bit


† chip nhớ có:
„ 12 chân địa chỉ
„ 4 chân dữ liệu
† mơ-đun nhớ cần có:


„ 12 chân địa chỉ
„ 8 chân dữ liệu


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.22



<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Ví dụ tăng độ dài từ nhớ



A11÷A0
D3÷D0
A11÷A0


A11÷A0


D3÷D0 D3÷D0
D7÷D4


CS


WE
OE


CS CS


OE


OE WE


WE


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.23


<i><b>Chương 5: Bộ nhớ máy tính</b></i>



Bài tốn tăng độ dài từ nhớ tổng quát


† Cho chip nhớ 2nxm bit


† Thiết kế mô-đun nhớ 2nx(k.m) bit
† Dùng k chip nhớ


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.24


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Tăng số lượng từ nhớ



VD2:


† Cho chip nhớ SRAM 4K x8 bit


† Thiết kế mô-đun nhớ 8K x8 bit
Giải:


† Dung lượng chip nhớ = 212x8 bit
† chip nhớ có:


„ 12 chân địa chỉ
„ 8 chân dữ liệu


† Dung lượng mô-đun nhớ = 213x8 bit:
„ 13 chân địa chỉ


</div>
<span class='text_page_counter'>(70)</span><div class='page_container' data-page=70>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.25



<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Ví dụ tăng số lượng từ nhớ



A
0
0


0
1


0 1
1 0
1 x 1 1


G Y0 Y1


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.26


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Bộ giải mã 2→4



B A
0
0
0
0



0 0
0 1
1 0
1 1


0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
1 x x 1 1 1 1


G Y0 Y1 Y2 Y3


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.27


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Bài tập



1. Tăng số lượng từ nhớ gấp 4 lần:


„ Cho chip nhớ SRAM 4K x8 bit


„ Thiết kế mô-đun nhớ 16K x8 bit


2. Tăng số lượng từ nhớ gấp 8 lần:


„ Cho chip nhớ SRAM 4K x8 bit


„ Thiết kế mô-đun nhớ 32K x8 bit



3. Thiết kế kết hợp:


„ Cho chip nhớ SRAM 4K x4 bit


„ Thiết kế mô-đun nhớ 8K x8 bit


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.28


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


5.3. Bộ nhớ chính



1. Các đặc trưng cơ bản


† Chứa các chương trình đang được thực hiện và các


dữ liệu đang được sử dụng


† Tồn tại trên mọi hệ thống máy tính


† Bao gồm các ngăn nhớ được đánh địa chỉ trực tiếp


bởi CPU


† Dung lượng của bộ nhớ chính nhỏ hơn không gian


địa chỉ bộ nhớ mà CPU quản lý


† Việc quản lý logic bộ nhớ chính tùy thuộc vào hệ



</div>
<span class='text_page_counter'>(71)</span><div class='page_container' data-page=71>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.29


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


2. Tổ chức bộ nhớ đan xen



† Độ rộng của bus dữ liệu để trao đổi với bộ


nhớ: m = 8, 16, 32, 64, 128 … bit


† Các ngăn nhớ được tổ chức theo byte


→ tổ chức bộ nhớ vật lý khác nhau


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.30


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


m=8 bit → một băng nhớ tuyến tính



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.31


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


m=16 bit → hai băng nhớ đan xen


0
2
4
6

8
2i
AN-1 ÷ A1


D7 ÷ D0


. . .
. . .
1
3
5
7
9
2i+1
. . .
. . .
Băng 0
Băng 1
BE0
BE1


D15 ÷ D8


Bộ tạo tín
hiệu chọn
byte
BE1
BE0
A0
B


W
Chọn byte


0 0 Chọn cả 2 byte
0 1 Chọn byte cao
1 0 Chọn byte thấp
1 1 Khơng chọn


BE1 BE0


Các tín hiệu chọn byte:


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.32


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


m=32 bit → bốn băng nhớ đan xen


0
4
8
12
16
4i
AN-1 ÷ A2


D7 ÷ D0


. . .
. . .
1


5
9
13
17
4i+1
. . .
. . .
Băng 0
Băng 1
BE0
BE1


D15 ÷ D8


Bộ tạo tín
hiệu chọn
byte
BE3
BE0
A0
B
W
2
6
10
14
18
4i+2
. . .
. . .


Băng 2
BE2
D23 ÷ D16


3
7
11
15
19
4i+3
. . .
. . .
Băng 3
BE3
D31 ÷ D24


BE2
BE1
A1


</div>
<span class='text_page_counter'>(72)</span><div class='page_container' data-page=72>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.33


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


m=64 bit → tám băng nhớ đan xen



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.34


<i><b>Chương 5: Bộ nhớ máy tính</b></i>



5.4. Bộ nhớ đệm nhanh (cache memory)


1. Nguyên tắc chung


† Cache có tốc độ nhanh hơn bộ nhớ chính


† Cache được đặt giữa CPU và bộ nhớ chính nhằm tăng tốc


độ truy nhập bộ nhớ của CPU


† Cache có thể được đặt trên chip của CPU


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.35


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Ví dụ về thao tác của cache



† CPU yêu cầu nội dung của ngăn nhớ
† CPU kiểm tra trên cache với dữ liệu này
† Nếu có, CPU nhận dữ liệu từ cache (nhanh)
† Nếu khơng có, đọc block nhớ chứa dữ liệu


từ bộ nhớ chính vào cache


† Tiếp đó chuyển dữ liệu từ cache vào CPU


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.36


<i><b>Chương 5: Bộ nhớ máy tính</b></i>



Cấu trúc chung của cache/bộ nhớ chính



B0
B1
B2
B3
B4
B5
Bi


Bp-1
. . .
. . .
L0


L1
L2
L3
Li
Lm-1


. . .
. . .


Bộ nhớ chính
Cache


Tag


</div>
<span class='text_page_counter'>(73)</span><div class='page_container' data-page=73>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.37



<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Cấu trúc chung của cache/bộ nhớ chính



† Một số Block của bộ nhớ chính được nạp vào các Line


của cache.


† Nội dung Tag (thẻ nhớ) cho biết block nào của bộ nhớ


chính hiện đang được chứa ở line đó.


† Khi CPU truy nhập (đọc/ghi) một từ nhớ, có 2 khả


năng xảy ra:


„ Từ nhớ đó có trong cache (cache hit)
„ Từ nhớ đó khơng có trong cache (cache miss)


† Vì số line của cache ít hơn số block của bộ nhớ chính,


cần có một thuật giải ánh xạ thơng tin trong bộ nhớ
chính vào cache.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.38


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


2. Các phương pháp ánh xạ địa chỉ



a) Ánh xạ trực tiếp (Direct mapping)


† Mỗi block của bộ nhớ chính chỉ có thể được nạp vào 1


line duy nhất của cache.


† Quy ước nạp: B<sub>0</sub>→ L<sub>0</sub>
B1→ L1
...


Bm-1 → Lm-1
Bm → L0
Bm+1 → L1


† L0: B0, Bm, B2m...


† L1: B1, Bm+1, B2m+1..


Ỉ B<sub>j</sub>chỉ có thể được nạp vào Lj mod m


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.39


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Ánh xạ trực tiếp (tiếp)



B0
B1
B2
B3


B4
B5
Bi
Bp-1
. . .
. . .
L0
L1
L2
L3
Li
Lm-1
. . .
. . .


Bộ nhớ chính
Cache


Tag Line Byte


So sánh
n1
n2
n3
N bit
cache hit
cache miss
=
(2)
(3.1)


(3.2)
(1)


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.40


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Ánh xạ trực tiếp (tiếp)



† Địa chỉ CPU phát ra có N bit, được chia thành 3


trường:


„ Trường Byte (có n<sub>1</sub> bit) để xác định byte nhớ


trong Line (Block)


2n1<sub>= kích thước 1 Line</sub>


„ Trường Line (có n<sub>2</sub>bit) để xác định Line trong


Cache


2n2<sub>= số Line trong Cache</sub>


Ỉ Dung lượng Cache = 2n1<sub>* 2</sub>n2<sub>= 2</sub>n1+n2
„ Trường Tag (có n3bit): số bit cịn lại


</div>
<span class='text_page_counter'>(74)</span><div class='page_container' data-page=74>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.41



<i><b>Chương 5: Bộ nhớ máy tính</b></i>


b) Ánh xạ liên kết tồn phần



† Fully Associative Mapping


† Mỗi block có thể được nạp vào bất kỳ line nào


của cache.


† Địa chỉ bộ nhớ do CPU phát ra được chia thành


2 phần: tag và byte.


† Để kiểm tra xem một block có trong cache hay


khơng, phải đồng thời kiểm tra tất cả tag của
các line trong cache.


Ỉ Cần các mạch phức tạp để kiểm tra.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.42


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Ánh xạ liên kết tồn phần (tiếp)



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.43


<i><b>Chương 5: Bộ nhớ máy tính</b></i>



c) Ánh xạ liên kết tập hợp



† Set Associative Mapping


† Là phương pháp dung hòa của 2 phương pháp trên
† Chia cache thành các tập: S<sub>0</sub>, S<sub>1</sub>, S<sub>2</sub>...


† Mỗi Set có một số Line (2, 4, 8, 16 Line)


<i>vd mỗi Set có 2 line: 2-way Set Associative Mapping</i>


† Mỗi block được nạp vào 1 line nào đó trong Set nhất


định:


B0→ S0
B1→ S1
...


Bk-1 → Sk-1
Bk → S0


† Địa chỉ do CPU phát ra có 3 trường: Tag, Set, Byte


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.44


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


</div>
<span class='text_page_counter'>(75)</span><div class='page_container' data-page=75>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.45



<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Ví dụ



† Hệ thống có: bộ nhớ chính = 256 MB


Cache = 128 KB
Line = 16 Byte


† Xác định số bit của các trường địa chỉ khi


„ Ánh xạ trực tiếp


„ Ánh xạ liên kết tập hợp 4 Line/Set


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.46


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Ví dụ (tiếp)



1) 2N<sub>= 256.2</sub>20<sub>= 2</sub>28<sub>Ỉ N = 28 bit</sub>


† Tính cho trường Byte:


Kích thước line = 16 = 24<sub>Byte Ỉ n</sub>
1= 4 bit


† Tính cho trường Line:



Số line trong Cache: 128.210<sub>/16 = 2</sub>13 <sub>Ỉ n</sub>


2= 13 bit


† Tính cho trường Tag:


n3= N - (n1 + n2) = 28 - (4 + 13) = 11 bit
2) - Trường Byte: n1= 4 bit


- Trường Set:


Số Set = Số line/4 = 213<sub>/4 = 2</sub>11 <sub>Ỉ n</sub>


2 = 11 bit
- Trường Tag: n3= N - (n1 + n2) = 28 - (4 + 11) = 13 bit


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.47


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


3. Các thuật giải thay thế block trong cache


† Khi CPU truy nhập một thông tin mà không


có trong cache (cache miss) thì nạp block
chứa thơng tin đó vào trong cache để thay
thế block cũ trong cache.


† Ánh xạ trực tiếp Ỉ chỉ có 1 cách nạp Ỉ



khơng cần thuật giải để nạp.


† 2 phương pháp ánh xạ liên kết Ỉ cần có


thuật giải để lựa chọn thay thế.


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.48


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


<b>Các thuật giải thay thế block trong cache (tiếp)</b>


1. Random: thay block một cách ngẫu nhiên.


2. FIFO (First In, First Out): thay thế block đã tồn tại
<i>lâu nhất trong toàn cache đối với ánh xạ liên kết </i>


<i>toàn phần, trong set đối với ánh xạ liên kết tập hợp.</i>


3. LFU (Least Frequently Used): thay block có số lần
truy nhập ít nhất.


</div>
<span class='text_page_counter'>(76)</span><div class='page_container' data-page=76>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.49


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


4. Phương pháp ghi dữ liệu khi cache hit


† Ghi xuyên qua (Write through)



„ ghi cả cache và bộ nhớ chính


„ tốc độ chậm


† Ghi trả sau (Write back)


„ chỉ ghi ra cache


„ tốc độ nhanh


„ khi block trong cache bị thay thế cần phải


ghi trả cả block về bộ nhớ chính


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.50


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


5. Cache trên các bộ xử lý Intel



† 80386: khơng có cache trên chip
† 80486: 8KB


† Pentium: có 2 cache L1 trên chip
„ cache lệnh = 8KB


„ cache dữ liệu = 8KB


† Pentium 4: hai mức cache L1 và L2 trên chip
„ Cache L1:



† 2 cache L1, mỗi cache 8KB
† kích thước Line = 64 byte


„ Cache L2:


† 256 KB - 2 MB


† kích thước Line = 128 byte


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.51


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Sơ đồ Pentium 4



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.52


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


5.5. Bộ nhớ ngồi


1. Các kiểu bộ nhớ ngoài


† Đĩa từ (Magnetic Disk)
† Đĩa quang (Optical Disk)
† Flash Disk


</div>
<span class='text_page_counter'>(77)</span><div class='page_container' data-page=77>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.53


<i><b>Chương 5: Bộ nhớ máy tính</b></i>



2. Đĩa từ (Platter)



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.54


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Các đặc tính đĩa từ



† Đầu từ cố định hay đầu từ di động
† Đĩa cố định hay thay đổi


† Một mặt hay hai mặt
† Một đĩa hay nhiều đĩa
† Cơ chế đầu từ


„ Tiếp xúc (đĩa mềm)


„ Không tiếp xúc


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.55


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Nhiều đĩa (Multiple Platters)



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.56


<i><b>Chương 5: Bộ nhớ máy tính</b></i>



</div>
<span class='text_page_counter'>(78)</span><div class='page_container' data-page=78>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.57


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Đĩa mềm



† 8”, 5.25”, 3.5”


† Dung lượng nhỏ: chỉ tới 1.44 MB
† Tốc độ chậm (360 rpm)


† Thơng dụng
† Rẻ tiền


† Tương lai có thể khơng dùng nữa?


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.58


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Đĩa cứng



† Một hoặc nhiều đĩa
† Thông dụng


† Dung lượng tăng lên rất nhanh


„ 1993: 200 MB


„ 2005: 30 GB, 40 GB, 80 GB, 120 GB …



† Tốc độ đọc/ghi nhanh (5400, 7200 rpm)
† Rẻ tiền


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.59


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


RAID



† Redundant Array of Inexpensive Disks
† Redundant Array of Independent Disks


† Tập các đĩa cứng vật lý được HĐH coi như một ổ


logic duy nhất


† Dữ liệu được lưu trữ phân tán trên các ổ đĩa vật lý
† Có thể sử dụng dung lượng dư thừa để lưu trữ các


thông tin kiểm tra chẵn lẻ, cho phép khôi phục lại
thông tin trong trường hợp đĩa bị hỏng


† 7 loại phổ biến (RAID 0-6)


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.60


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


3. Đĩa quang




† CD-ROM (Compact Disk ROM)
† CD-R (Recordable CD)
† CD-RW (Rewriteable CD)
† Dung lượng thông dụng 700 MB
† Ổ đĩa CD:


„ Ổ đĩa CD-ROM


„ Ổ CD-Writer: ghi một phiên hoặc ghi nhiều phiên
„ Ổ CD-RW


</div>
<span class='text_page_counter'>(79)</span><div class='page_container' data-page=79>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.61


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Đĩa quang (tiếp)



† DVD


„ Digital Video Disk: chỉ dùng trên ổ đĩa xem


video


„ Digital Versatile Disk: ổ trên máy tính


„ Ghi một hoặc hai mặt


„ Một hoặc hai lớp trên một mặt



„ Thông dụng: 4,7 GB/lớp


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.62


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


4. Flash Disk



† Bộ nhớ bán dẫn cực nhanh (flash memory)
† Thường kết nối qua cổng USB


† Không phải dạng đĩa


† Dung lượng tăng nhanh (64 MB – 2 GB)
† Thuận tiện


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.63


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


5.6. Hệ thống nhớ trên PC hiện nay



† Bộ nhớ cache: tích hợp trên chip vi xử lý
† Bộ nhớ chính: tồn tại dưới dạng các mơ-đun


nhớ RAM


„ SIMM – Single Inline Memory Module


† 30 chân: 8 đường dữ liệu


† 72 chân: 32 đường dữ liệu


„ DIMM - Dual Inline Memory Module


† 168 chân: 64 đường dữ liệu


„ RIMM – Rambus DRAM


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 5.64


<i><b>Chương 5: Bộ nhớ máy tính</b></i>


Hệ thống nhớ trên PC (tiếp)



† ROM BIOS chứa các chương trình sau:
„ Chương trình POST (Power On Self Test)
„ Chương trình CMOS Setup


„ Chương trình Bootstrap loader


„ Các trình điều khiển vào-ra cơ bản (BIOS)
† CMOS RAM:


„ Cấu hình hệ thống
„ Đồng hồ hệ thống
„ Có pin ni riêng


</div>
<span class='text_page_counter'>(80)</span><div class='page_container' data-page=80>

Chương 6



<b>HỆ THỐNG VÀO-RA</b>




<b>Phạm Quang Dũng</b>


Bộ mơn Khoa học máy tính - Khoa CNTT
Trường Đại học Nông nghiệp I – Hà Nội
website: www.hau1.edu.vn/it/pqdung
ĐT: (04) 8766318 DĐ: 0988.149.189


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.2
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Nội dung chương 6



6.1. Tổng quan về hệ thống vào-ra


6.2. Các phương pháp điều khiển vào-ra


6.3. Nối ghép thiết bị ngoại vi



6.4. Các cổng vào-ra thông dụng trên PC



<i><b>Chương 6: Hệ thống vào-ra</b></i>


6.1. Tổng quan về hệ thống vào-ra



1. Giới thiệu chung


† Chức năng của hệ thống vào-ra: Trao đổi


thông tin giữa máy tính với thế giới bên ngồi


† Các thao tác cơ bản:


„ Vào dữ liệu (Input)
„ Ra dữ liệu (Output)
† Các thành phần chính


„ Các thiết bị ngoại vi


„ Các môđun vào-ra


<i><b>Chương 6: Hệ thống vào-ra</b></i>


Đặc điểm của vào-ra



†

Tồn tại đa dạng các thiết bị ngoại vi (TBNV)



khác nhau về:



„ Nguyên tắc hoạt động
„ Tốc độ


„ Khuôn dạng dữ liệu


†

Tất cả các TBNV đều chậm hơn CPU và RAM



</div>
<span class='text_page_counter'>(81)</span><div class='page_container' data-page=81>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.5
<i><b>Chương 6: Hệ thống vào-ra</b></i>


2. Các TBNV



†

Chức năng: chuyển đổi dữ liệu giữa bên




trong và bên ngồi máy tính



†

Phân loại:



„ TBNV giao tiếp người-máy: chuột, bàn phím,


màn hình, máy in,…


„ TBNV giao tiếp máy-máy: gồm các thiết bị


theo dõi và kiểm tra


„ TBNV truyền thông:


† modem (modulator/demodulator),
† Network Interface Card (NIC, card mạng)


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.6
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Cấu trúc chung của TBNV



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.7
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Các thành phần của TBNV



†

Bộ chuyển đổi tín hiệu: chuyển đổi dữ liệu



giữa bên ngồi và bên trong máy tính




†

Bộ đệm dữ liệu: đệm dữ liệu khi truyền



giữa môđun vào-ra và TBNV



†

Khối logic điều khiển: điều khiển hoạt động



của TBNV đáp ứng theo yêu cầu từ môđun


vào-ra



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.8
<i><b>Chương 6: Hệ thống vào-ra</b></i>


3. Môđun vào-ra



†

Chức năng:



„ Điều khiển và định thời
„ Trao đổi thông tin với CPU
„ Trao đổi thông tin với TBNV


</div>
<span class='text_page_counter'>(82)</span><div class='page_container' data-page=82>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.9
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Cấu trúc chung của môđun vào-ra



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.10
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Các thành phần của môđun vào-ra




†

Thanh ghi đệm dữ liệu: đệm dữ liệu trong



quá trình trao đổi



†

Các cổng vào-ra (I/O Port): kết nối với



TBNV, mỗi cổng có một địa chỉ xác định



†

Thanh ghi trạng thái/điều khiển: lưu giữ



thông tin trạng thái/điều khiển cho các


cổng vào-ra



†

Khối logic điều khiển: điều khiển môđun



vào-ra



<i><b>Chương 6: Hệ thống vào-ra</b></i>


4. Các phương pháp địa chỉ hóa cổng vào-ra


a. Không gian địa chỉ của bộ xử lý


† Một số bộ xử lý chỉ quản lý


một không gian địa chỉ
duy nhất, gọi là không
gian địa chỉ bộ nhớ.



„ N bit địa chỉ → có 2N địa chỉ
„ Ví dụ: các bộ xử lý 680x0


của Motorola


000...000


.
.
.


Khơng gian
địa chỉ bộ nhớ


.
.
.


000...001
000...010
000...011
000...100
000...101


111...111
N bit


<i><b>Chương 6: Hệ thống vào-ra</b></i>


Không gian địa chỉ của bộ xử lý (tiếp)




†

Một số bộ xử lý quản lý hai không gian địa



chỉ tách biệt



</div>
<span class='text_page_counter'>(83)</span><div class='page_container' data-page=83>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.13
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Hai khơng gian địa chỉ tách biệt của bộ xử lý



000...000


.
.
.


Không gian
địa chỉ bộ nhớ


.
.
.
000...001
000...010
000...011
000...100
000...101
111...111
N bit
00...00


.
.
.
Không gian
địa chỉ vào-ra


.
.
.
00...01
00...10
00...11
11...11
N1bit


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.14
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Hai không gian địa chỉ tách biệt của bộ xử lý (tiếp)


† Đặc điểm của bộ xử lý có hai khơng gian địa chỉ:


„ Có tín hiệu điều khiển phân biệt truy nhập không


gian địa chỉ bộ nhớ hay khơng gian địa chỉ vào-ra


„ Tập lệnh có các lệnh vào-ra chuyên dụng (IN, OUT)


† Ví dụ: Các bộ xử lý 80x86 và Pentium (Intel)



„ Pentium


† Không gian địa chỉ bộ nhớ = 232 byte = 4 GB
† Không gian địa chỉ vào-ra = 216<sub>byte = 64 KB</sub>


† Tín hiệu điều khiển:


† Hai lệnh vào-ra chuyên dụng: IN, OUT


IO
M/


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.15
<i><b>Chương 6: Hệ thống vào-ra</b></i>


b. Các phương pháp địa chỉ hóa cổng vào-ra



†

Vào-ra theo bản đồ bộ nhớ



(Memory mapped IO)



†

Vào-ra riêng biệt



(Isolated IO

hay

IO mapped IO)



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.16
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Vào-ra theo bản đồ bộ nhớ




†

Cổng vào-ra được đánh địa chỉ theo không



gian địa chỉ bộ nhớ



†

Vào-ra giống như đọc/ghi bộ nhớ



†

CPU trao đổi dữ liệu với cổng vào-ra thông



qua các lệnh truy nhập dữ liệu bộ nhớ



</div>
<span class='text_page_counter'>(84)</span><div class='page_container' data-page=84>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.17
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Vào-ra riêng biệt



†

Cổng vào-ra được đánh địa chỉ theo không



gian địa chỉ vào-ra riêng biệt



†

CPU trao đổi dữ liệu với cổng vào-ra thông



qua các lệnh vào-ra chuyên dụng (IN, OUT)



†

Chỉ có thể thực hiện trên các hệ thống có



khơng gian địa chỉ vào-ra riêng biệt



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.18
<i><b>Chương 6: Hệ thống vào-ra</b></i>



6.2. Các phương pháp điều khiển vào-ra



†

Vào-ra bằng chương trình



(Programmed IO)



†

Vào-ra điều khiển bằng ngắt



(Interrupt Driven IO)



†

Truy nhập bộ nhớ trực tiếp – DMA



(Direct Memory Access)



<i><b>Chương 6: Hệ thống vào-ra</b></i>


1. Vào-ra bằng chương trình



†

Nguyên tắc chung: CPU điều khiển trực tiếp



vào-ra bằng chương trình


„ Kiểm tra trạng thái của TBNV
„ Phát tín hiệu điều khiển đọc/ghi
„ Trao đổi dữ liệu


<i><b>Chương 6: Hệ thống vào-ra</b></i>


Lưu đồ chương trình



Đọc trạng thái của


mơđun vào-ra


Mơđun vào-ra
có sẵn sàng?


Trao đổi dữ liệu với
môđun vào-ra


</div>
<span class='text_page_counter'>(85)</span><div class='page_container' data-page=85>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.21
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Hoạt động của vào-ra bằng chương trình



†

CPU yêu cầu thao tác vào-ra



†

Môđun vào-ra thực hiện thao tác



†

Môđun vào-ra thiết lập các bit trạng thái



†

CPU kiểm tra các bit trạng thái:



„ Nếu chưa sẵn sàng thì quay lại kiểm tra
„ Nếu sẵn sàng thì chuyển sang trao đổi dữ


liệu với môđun vào-ra


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.22
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Đặc điểm




†

Vào-ra do ý muốn của người lập trình



†

CPU trực tiếp điều khiển vào-ra



†

CPU đợi môđun vào-ra → tiêu tốn thời gian



của CPU



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.23
<i><b>Chương 6: Hệ thống vào-ra</b></i>


2. Vào-ra điều khiển bằng ngắt



†

Nguyên tắc chung:



„ CPU không phải đợi trạng thái sẵn sàng của


môđun vào-ra, CPU thực hiện một chương
trình nào đó


„ Khi mơđun vào-ra sẵn sàng thì nó phát tín


hiệu ngắt CPU


„ CPU thực hiện chương trình con vào-ra


tương ứng để trao đổi dữ liệu


„ CPU trở lại tiếp tục thực hiện chương trình



đang bị ngắt


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.24
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Chuyển điều khiển đến chương trình con ngắt



lệnh
lệnh
lệnh
lệnh


lệnh i


lệnh i+1


RETURN


lệnh


lệnh


.
.
.


Chương trình
đang thực hiện



.
.
.
lệnh


Chương trình
con ngắt phục


vụ vào-ra


lệnh
lệnh


</div>
<span class='text_page_counter'>(86)</span><div class='page_container' data-page=86>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.25
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Hoạt động vào dữ liệu: nhìn từ mơđun vào-ra



†

<i>Mơđun vào-ra nhận tín hiệu điều khiển đọc</i>



từ CPU



†

Mơđun vào-ra nhận dữ liệu từ TBNV, trong



khi đó CPU làm việc khác



†

Mơđun vào-ra phát tín hiệu ngắt CPU



†

CPU yêu cầu dữ liệu




†

Môđun vào-ra chuyển dữ liệu đến CPU



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.26
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Hoạt động vào dữ liệu: nhìn từ CPU



†

<i>Phát tín hiệu điều khiển đọc</i>



†

Làm việc khác



†

Cuối mỗi chu kỳ lệnh, kiểm tra tín hiệu ngắt



†

Nếu bị ngắt:



„ Cất ngữ cảnh (nội dung các thanh ghi)
„ Thực hiện chương trình con ngắt để vào dữ


liệu


„ Khơi phục ngữ cảnh của chương trình đang


thực hiện


<i><b>Chương 6: Hệ thống vào-ra</b></i>


Các phương pháp nối ghép ngắt



†

Sử dụng nhiều đường yêu cầu ngắt




†

Kiểm tra vòng bằng phần mềm



(Software Poll)



†

Kiểm tra vòng bằng phần cứng



(Daisy Chain

hay

Hardware Poll)



†

Sử dụng bộ điều khiển ngắt (PIC)



<i><b>Chương 6: Hệ thống vào-ra</b></i>


Nhiều đường yêu cầu ngắt



† CPU phải có nhiều đường tín hiệu u cầu ngắt
† Hạn chế số lượng môđun vào-ra


</div>
<span class='text_page_counter'>(87)</span><div class='page_container' data-page=87>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.29
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Kiểm tra vòng bằng phần mềm



† CPU thực hiện phần mềm hỏi lần lượt từng


môđun vào-ra


† Chậm


† Thứ tự các mơđun được hỏi vịng chính là thứ



tự ưu tiên


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.30
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Kiểm tra vòng bằng phần cứng



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.31
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Kiểm tra vòng bằng phần cứng (tiếp)



† CPU phát tín hiệu chấp nhận ngắt (INTA) đến


mơđun vào-ra đầu tiên


† Nếu mơđun vào-ra đó khơng gây ra ngắt thì nó gửi


tín hiệu đến mơđun kế tiếp cho đến khi xác định
được môđun gây ngắt


† Môđun vào-ra gây ngắt sẽ đặt vector ngắt lên bus


dữ liệu


† CPU sử dụng vector ngắt để xác định nơi chứa


chương trình con điều khiển ngắt


† Thứ tự các môđun vào-ra kết nối trong chuỗi xác



định thứ tự ưu tiên


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.32
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Bộ điều khiển ngắt lập trình được



† PIC – Programmable Interrupt Controller


† PIC có nhiều đường vào yêu cầu ngắt có quy định mức ưu tiên
† PIC chọn một yêu cầu ngắt không bị cấm có mức ưu tiên cao


nhất gửi tới CPU


</div>
<span class='text_page_counter'>(88)</span><div class='page_container' data-page=88>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.33
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Đặc điểm của vào-ra điều khiển bằng ngắt



†

Có sự kết hợp giữa phần cứng và phần



mềm



„ Phần cứng: gây ngắt CPU
„ Phần mềm: trao đổi dữ liệu


†

CPU trực tiếp điều khiển vào-ra



†

CPU không phải đợi môđun vào-ra → hiệu




quả sử dụng CPU tốt hơn



Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.34
<i><b>Chương 6: Hệ thống vào-ra</b></i>


3. DMA (Direct Memory Access)



†

Vào-ra bằng chương trình và bằng ngắt do



CPU trực tiếp điều khiển:


„ Chiếm thời gian của CPU


„ Tốc độ bị hạn chế vì phải chuyển qua CPU


†

Để khắc phục dùng DMA



„ Thêm môđun phần cứng trên bus → DMAC


(DMA Controller)


„ DMAC điều khiển vào-ra không thông qua


CPU


<i><b>Chương 6: Hệ thống vào-ra</b></i>


Sơ đồ cấu trúc của DMAC



<i><b>Chương 6: Hệ thống vào-ra</b></i>



Các thành phần của DMAC



†

Thanh ghi dữ liệu: chứa dữ liệu trao đổi



†

Thanh ghi địa chỉ: chứa địa chỉ ngăn nhớ dữ



liệu



†

Bộ đếm dữ liệu: chứa số từ dữ liệu (word)



cần trao đổi



†

Logic điều khiển: điều khiển hoạt động của



</div>
<span class='text_page_counter'>(89)</span><div class='page_container' data-page=89>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.37
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Hoạt động DMA



† CPU “nói” cho DMAC:


„ Vào hay ra dữ liệu
„ Địa chỉ thiết bị vào-ra


„ Địa chỉ đầu của mảng nhớ chứa dữ liệu → nạp vào thanh


ghi địa chỉ


„ Số từ dữ liệu cần truyền → nạp vào bộ đếm dữ liệu



† CPU làm việc khác


† DMAC điều khiển trao đổi dữ liệu
† Sau khi truyền được một word thì:


„ nội dung thanh ghi địa chỉ tăng
„ nội dung bộ đếm dữ liệu giảm


† Khi bộ đếm dữ liệu = 0, DMAC gửi tín hiệu ngắt CPU để


báo kết thúc DMA


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.38
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Các kiểu thực hiện DMA



† DMA truyền theo khối (Block transfer DMA): DMAC


sử dụng bus để truyền xong cả khối dữ liệu


† DMA lấy chu kỳ (Cycle Stealing DMA): DMAC cưỡng


bức CPU treo tạm thời từng chu kỳ bus, DMAC
chiếm bus thực hiện truyền một word


† DMA trong suốt (Transparent DMA): DMAC nhận


biết những chu kỳ nào CPU không sử dụng bus thì


chiếm bus để trao đổi một word


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.39
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Cấu hình DMA (1)



† Mỗi lần truyền, DMA sử dụng bus hai lần


„ Giữa môđun vào-ra với DMAC
„ Giữa DMAC với bộ nhớ


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.40
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Cấu hình DMA (2)



† DMAC điều khiển một hoặc vài môđun vào-ra
† Mỗi lần truyền, DMAC sử dụng bus một lần:


</div>
<span class='text_page_counter'>(90)</span><div class='page_container' data-page=90>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.41
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Cấu hình DMA (3)



† Bus vào-ra tách rời hỗ trợ tất cả các thiết bị cho phép


DMA


† Mỗi lần truyền, DMAC sử dụng bus một lần:



„ Giữa DMAC với bộ nhớ


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.42
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Đặc điểm của DMA



†

CPU không tham gia trong quá trình trao



đổi dữ liệu



†

DMAC điều khiển trao đổi dữ liệu giữa bộ



nhớ chính với mơđun vào-ra (hồn tồn


bằng phần cứng) → tốc độ nhanh



†

Phù hợp với các yêu cầu trao đổi mảng dữ



liệu có kích thước lớn



<i><b>Chương 6: Hệ thống vào-ra</b></i>


4. Bộ xử lý vào-ra



†

Việc điều khiển vào-ra được thực hiện bởi



một bộ xử lý vào-ra chuyên dụng



†

Bộ xử lý vào-ra hoạt động theo chương




trình của riêng nó



†

Chương trình của bộ xử lý vào-ra có thể



nằm trong bộ nhớ chính hoặc nằm trong


một bộ nhớ riêng



†

Hoạt động theo kiến trúc đa xử lý



<i><b>Chương 6: Hệ thống vào-ra</b></i>


6.3. Nối ghép TBNV


1. Các kiểu nối ghép vào-ra



†

Nối ghép song song



</div>
<span class='text_page_counter'>(91)</span><div class='page_container' data-page=91>

Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.45
<i><b>Chương 6: Hệ thống vào-ra</b></i>


Nối ghép song song



† Truyền nhiều bit song song


† Tốc độ nhanh


† Cần nhiều đường truyền dữ liệu


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.46
<i><b>Chương 6: Hệ thống vào-ra</b></i>



Nối ghép nối tiếp



† Truyền lần lượt từng bit


† Cần có bộ chuyển đổi từ dữ liệu song song sang nối tiếp


hoặc/và ngược lại


† Tốc độ chậm hơn


† Cần ít đường truyền dữ liệu


Mơđun
vào-ra
nối tiếp
Đến


bus
hệ
thống


Đến
TBNV


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.47
<i><b>Chương 6: Hệ thống vào-ra</b></i>


2. Các cấu hình nối ghép




†

Điểm tới điểm (Point to Point)



„ Thông qua một cổng vào-ra nối ghép với


một TBNV


†

Điểm tới đa điểm (Point to Multi-point)



„ Thông qua một cổng vào-ra cho phép nối


ghép được với nhiều TBNV


„ Ví dụ:


† SCSI (Small Computer System Interface): 7 hoặc


15 thiết bị


† USB (Universal Serial Bus): 127 thiết bị
† IEEE 1394 (FireWire): 63 thiết bị


Phạm Quang Dũng Bài giảng Kiến trúc máy tính 6.48
<i><b>Chương 6: Hệ thống vào-ra</b></i>


6.4. Các cổng vào-ra thơng dụng trên PC



† Các cổng PS/2: nối ghép bàn phím và chuột


† Cổng nối ghép màn hình



† Cổng LPT (Line Printer): nối ghép với máy in, là


cổng song song (Parallel Port) – 25 chân


† Cổng COM (Communication): nối ghép với modem,


chuột, là cổng nối tiếp (Serial Port) – 9 chân hoặc
25 chân


† Cổng USB (Universal Serial Bus): Cổng nối tiếp đa


năng, cho phép nối ghép tối đa 127 thiết bị, nhờ
các USB Hub


</div>

<!--links-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×