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

Giáo Trình Kiến Trúc Máy Tính - Nguyễn Hữu Lộ phần 7 pps

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 (248.36 KB, 13 trang )

Cấn Trúc Máy Tính
-79-

Hình 3.13: Một thí dụ sơ đồ cấu tạo của 1 chip DRAM
3. Một số khái niệm về bộ nhớ khác:
- Bộ nhớ chớp nhoáng (Flash Memory)
Trong ít năm gần đây, một loại bộ nhớ không bay hơi mới đã xuất hiện trên thò
trường, thường được sử dụng thay thế cho các ổ đóa mềm và cứng trong những máy tính
xách tay (notebook). Đó là bộ nhớ flash. Cấu trúc của chúng cơ bản như EEPROM. Do
vậy chỉ cần điện thế cỡ 12 V là có thể cho phép thực hiện 10 000 chu trình xoá và lập
trình. Bộ nhớ flash có thể hoạt động gần mềm dẻo như DRAM và SRAM nhưng lại
không mất số liệu khi bò cắt điện.
Mục đích sử dụng chính của bộ nhớ flash là để thay thế cho các ổ đóa mềm và ổ
đóa cứng dung lượng nhỏ> Do nó là mạch tích hợp nên có ưu điểm là kích thước nhỏ và
tiêu tán năng lượng thấp, không bò ảnh hưởng của va đập. Các đóa cứng chất rắn dựa
trên cơ sở các bộ nhớ flash có lợi thế về công suất tiêu thụ cũng như giá thành có dung
lượng tới vài MByte. Các card nhớ loại này cũng có ưu điểm là không gặp phải vấn đề
mất thông tin như trường hợp RAM CMOS khi pin Ni-Cd bò hỏng. Thời gian lưu trữ
thông tin trong bộ nhớ flash ít nhất cũng là 10 năm còn thì phải là 100 năm, trong thời
gian này thì các đóa mềm và cứng đã bò hỏng rồi.
- Bộ nhớ cache (khay)
Với các cpu tốc độ nhanh (trên 33MHz), cần phải xen các trạng thái đợi khi truy
xuất dữ liệu tới các DRAM rẻ tiền nhưng có thời gian thâm nhập chậm (60-120ns).
Điều đó làm giảm hiệu suất của toàn máy tính. Có thể giải quyết bằng cách dùng các
SRAM có thời gian thâm nhập ngắn hơn (20-25ns, thâ.m chí 12ns) nhưng giá thành lại
rất đắt. Bộ nhớ cache kết hợp được các lợi điểm nhanh của SRAM và rẻ của DRAM
để xây dựng được một bộ nhớ có hiệu suất cao cho PC. Giữa CPU và bộ nhớ chính
bằng DRAM, người ta xen vào một bộ nhớ SRAM nhanh có dung lượng nhỏ bằng 1/10
hoặc 1/100 lần bộ nhớ chính gọi là cache; dưới sự điều khiển của bộ điều khiển cache,
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính


-80-
bộ nhớ này sẽ lưu trữ tạm thời các số liệu thường được gọi và cung cấp nó cho CPU
trong thời gian ngắn.
- Bộ nhớ video
Trước đây người ta sử dụng RAM động DRAM (Dynamic RAM) làm RAM video
nhưng loại RAM này ngày càng không thích hợp với các board video đồ hoạ có độ
phân giải cao đòi hỏi tốc độ truyền dữ liệu phải rất cao. Thí dụ ở độ phân giải
1024*768, tần số quét dọc 72 Hz, số bit màu là 24 bit (màu thực) bộ nhớ RAM video
phải được đọc ở tốc độ khoảng 170 triệu bit trong một sec, là tốc độ gần tối đa của các
DRAM quy ước. Hiện nay người ta dùng các loại RAM khác như EDO–RAM
(Extended Data Out), V–RAM ( Video RAM ), MD–RAM (Multibank RAM ). SG-
RAM (Synchronous Graphics RAM ) làm RAM video.
EDO–RAM là loại RAM nạp độc lập trước cho những mạch riêng biệt lần truy
xuất kế tiếp sẽ bắt đầu trước khi lần truy xuất trước đó hoàn tất. EDO–RAM còn được
sử dụng trong bộ nhớ chính.

V–RAM là loại bộ nhớ có cổng kép cho phép bộ xử lý và chip gia tốc trên board
video cũng như chip DAC hoặc ngay cả bộ vi xử lý của PC có thể truy xuất RAM
video cùng một lúc.

MD–RAM là kiểu bộ nhớ chuyên dùng cho những ứng dụng đồ hoạ và hình ảnh.
MD-RAM được tổ chức thành những dãy nhỏ cho phép cài đặt ở nhiều kých thước đa
tích hợp 32KB. Lấy thí dụ với độ bộ phân giải 1924 * 768 và 24 bit màu ta cần kých
thước bộ nhớ RAM video là 2.3MB. Nếu dùng các D–RAM 256 K* 16 và bus 64-bit
kých thước bộ nhớ RAM video phải là 4 MB bao gồm hai dãy mỗi dãy bốn chip nhớ.
Bằng cách dùng MD–RAM ta có thể cấu tạo bộ nhớ 2.5 MB với hai hoặc ba chip rời.
Như vậy tránh lãng phí được 1.5 MB, từ đó giảm giá thành cho bộ nhớ RAM video .

SG–RAM là kiểu bộ nhớ có thể hoạt động được ở tần số 66 MHz hoặc nhanh hơn
cũng như được sử dụng trong các board mẹ có đònh chuẩn bus liên kết nối thành phần

ngoại vi PCI ( peripheral component interconnect ) .

Các hệ thống bus sử dụng trong máy tính (như ISA, EISA hoặc MCA) ảnh hưởng
đến tốc độ xử lý các thông tin hình ảnh. Chi tiết các loại bus này và các bus khác sẽ
được đề cập đến trong chương 3. Bus ISA có 16 bit dữ liệu hoạt động ở tần số 8.33
MHz. Các bus EISA và MCA có 32 bit dữ liệu nhưng chỉ hoạt động ở tần số thứ 10
MHz . Các tần số vừa nêu là các tốc độ bus, không phải là tốc độ của CPU . Để cải
thiện giới hạn này, người ta đổ xung bus cục bộ VESA (VL–Bus) 32–bit hoạt động ở
tốc độ đầy đủ ở CPU lên đến 40 MHz. Khi hệ thống bus PCI được áp dụng , số bit dữ
liệu được xử lý đồng thời là 64 bit với tốc độ 66MHz .

Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-81-
Cho đến hiện nay những người sử dụng máy tính đã được nghe nhiều về các
board video đa phương tiện (Multimedia ) có khả năng sử lý các ảnh tónh và ảnh động,
xử lý tính hiệu hình, xử lý đồ hoạ v.v… . Cũng như các board video xử lý ảnh động ba
chiều ( 3– D ) . Trên các board video loại này người ta dùng chip chuyên dùng ASIC
để nén và giải nén tín hiệu video theo giải thuật của MPEG .
IV. Giao tiếp
Một hệ thống máy tính có kích thước nhỏ đến trung bình tiêu biểu bao gồm một
chip vi xử lý, các chip nhớ và một số bộ điều khiển I/O, tất cả đều được nối qua một
bus. Ta đã nghiên cứu chi tiết về các bộ nhớ, các bộ vi xử lý và các bus. Phần này sẽ
xem xét phần cuối cùng, các chip I/O. Qua những chip này máy tính truyền thông với
thế giới bên ngoài.
1. Các chip I/O
Có nhiều chip I/O đã được sử dụng và cũng có nhiều chip mới sản xuất đang
được giới thiệu. Các chip thông dụng bao gồm các UART, USART, các bộ điều khiển
CRT, các bộ điều khiển đóa và các PIO. UART (Universal Asynchronous Receiver
Transmitter) là một chip có thể đọc một byte từ bus dữ liệu và ở từng thời điểm xuất

từng bit nối tiếp nhau tới thiết bò đầu cuối trên đường truyền nối tiếp, hoặc nhập dữ
liệu từ thiết bò đầu cuối. Tốc độ cho phép của các UART thường từ 50 bps tới 19.2
Kbps, độ rộng ký tự từ 5 tới 8 bit; có 1, 1.5 hoặc 2 bit stop, có thể dùng hoặc không
dùng bit kiểm tra chẳn lẻ, tất cả đều dưới sự điều khiển của chương trình. USART
(Universal Synchronous Receiver Transmitter) có thể điều khiển truyền đồng bộ bằng
cách dùng nhiều nghi thức khác nhau và cũng thực hiện tất cả chức năng của một
UART. Vì chúng ta đã xét UART ở chương 2, nên phần này chỉ nghiên cứu về giao
tiếp song song ( parallel interface ) như một thí dụ cho một chip I/O.
Chip PIO
Chip xuất / nhập song song PIO ( Parallel Input / Output ) tiêu biểu là chip 8255A
của Intel, được trình bày trong hình 3.14. 8255A có 24 đường I/O để giao tiếp với bất
kỳ thiết bò nào tương thích với TTL, thí dụ như bàn phím, chuyển mạch, đèn hoặc máy
in. Chương trình của CPU có thể ghi 0 hoặc 1 lên một đường bất kỳ hoặc đọc trạng thái
nhập của một đường bất kỳ, cung cấp sự linh hoạt nhất trong giao tiếp với ngoại vi.
Một hệ thống nhỏ dựa trên bộ vi xử lý sử dụng một PIO thường có thể thay thế hoàn
toàn một board gồm nhiều chip SSI và MSI.
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-82-
Hình 3.14 : Chip PIO 8255A
hình cho 8255A theo nhiều cách bằng việc nạp các
thanh
ác cung cấp khả năng bắt tay với các thiết bò ngoại vi và
xuất
còn c
Mặc dù CPU có thể đònh cấu
ghi trạng thái bên trong chip, chúng ta sẽ tập trung trên một số chế độ hoạt động
đơn giản. Cách đơn giản nhất là sử dụng 8255A như 3 cổng 8 – bit (8 bit port) độc lập:
A, B và C. Mỗi cổng kết hợp với một thanh ghi chốt 8 bit bên trong 8255A. Để thiết
lập các đường tín hiệu trên cổng, CPU chỉ phải ghi một số 8 bit vào thanh ghi tương

ứng, số 8-bit sẽ xuất hiện trên các đường tín hiệu xuất và sẽ duy trì giá trò (được chốt)
cho tới khi thanh ghi được ghi lần nữa. Để dùng cổng làm một cổng nhập, CPU chỉ
phải đọc thanh ghi tương ứng.
Các chế độ hoạt động kh
nhập 2 chiều. Thí dụ để xuất dữ liệu cho một thiết bò không luôn luôn sẵn sàng
nhận dữ liệu trong chế độ bắt tay, 8255A sẽ đưa dữ liệu lên cổng xuất và đợi thiết bò
ngoại vi gởi 1 xung trở về báo rằng vừa nhận dữ liệu và yâu cầu dữ liệu kế. Mạch
logic cần thiết để chốt những xung như vậy và làm cho chúng có giá trò đối với CPU
được bao gồm bên trong phần cứng của 8255A.
Từ sơ đồ chức năng của 8255A chúng ta thấy ngoài 24 chân cho 3 cổng, 8255A
ó 8 đường dữ liệu nối trực tiếp với bus dữ liệu và các đường khác: một đường
chọn chip, các đường điều khiển đọc và ghi dữ liệu, 2 đường đòa chỉ và một đường để
thiết lập lại trạng thái ban đầu cho chip. Hai đường đòa chỉ chọn một trong 4 thanh ghi
nội, tương ứng với các cổng A, B, C và thanh ghi trạng thái. Thanh ghi này có các bit
xác đònh cổng nào là cổng nhập và cổng nào là cổng xuất và những chức năng khác.
Bình thường, 2 đường đòa chỉ của 8255A được nối với các bit thấp nhất của bus đòa chỉ.
2. Giải mã đòa chỉ.
Cho đến lúc này chúng ta đã sơ bộ biết qua cách chọn chip đối với các chip bộ
nhớ v
O được chọn theo một trong hai cách : như một thiết bò I/O thực sự hoặc như
một p
à các chip I/O đã khảo sát. Mục này giúp chúng ta xem xét kỹ hơn vấn đề này.
Hãy xét một máy vi tính đơn giản bao gồm một CPU 8-bit với 16 đường đòa chỉ, một
EPROM 2K x 8 bit cho chương trình, một RAM 2K x 8 bit cho dữ liệu và một PIO. Hệ
thống nhỏ này có thể được dùng như một mẫu (prototype) cho bộ não của một đồ chơi
hoặc của một thiết bò đơn giản. Trong sản xuất EPROM có thể được thay thế bằng
ROM.
PI
hần của bộ nhớ. Nếu được chọn như một thiết bò I/O, chúng ta phải xác đònh một
không gian đòa chỉ I/O rõ ràng, thí dụ sử dụng tín hiệu

IORQ
trên IBM PC bus. Nếu
được chọn như một phần của bộ nhớ, gọi là I/O được ánh xạ bộ nhớ (memory-mapped
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-83-
I/O), chúng ta phải dành 4 byte trong không gian đòa ch nhớ cho 3 cổng 8 bit và
thanh ghi điều khiển. Sự chọn lựa sau có hơi tùy tiện nhưng ta sẽ chọn theo cách này
nhằm minh họa một số vấn đề đáng quan tâm trong giao tiếp với I/O.
EPROM cần 2K không gian đòa chỉ, RAM cũng cần 2K và PIO cần 4 byte. Do
không gian đòa chỉ là 64 khác, chúng ta phải chọn vò trí đặt 3 thành ph
ỉ bộ
ần này vào trong
khôn
ếu chúng ta đã chọn đòa chỉ
cho P
xxxxx (nhò phân). Do
EPRO
g gian đòa chỉ đó. Một khả năng được trình bày trong hình 3.12, trong đó EPROM
chiếm các đòa chỉ từ 0 đến 2K, RAM chiếm các đòa chỉ từ 32K đến 34K và PIO chiếm
4 byte cao nhất của không gian đòa chỉ từ 65532 tới 65535.
Theo quan điểm của người lập trình, không có sự khác nhau trong việc chọn cách
đònh đòa chỉ cho I/O. Tuy nhiên, đối với vấn đề giao tiếp, n
IO thông qua không gian đòa chỉ I/O, ta sẽ không mất đòa chỉ dành cho bộ nhơ
ù(nhưng tất nhiên sẽ mất 4 đòa chỉ trong không gian đòa chỉ I/O).
Với cách phân đòa chỉ như trong hình 3.15, một byte của EPROM được tham
chiếu bởi một đòa chỉ bộ nhớ 16 bit có dạng 00000xxxxxx
M chiếm các đòa chỉ từ 0 đến 2K trong không gian đòa chỉ 64K nên 5 bit cao của
đòa chỉ đều bằng 0. Do vậy, việc chọn chip EPROM có thể thực hiện bằng cách sử
dụng một bộ so sánh 5 bit, ta sẽ so sánh 5 đường đòa chỉ cao với 00000.


Hình 3.15 : Vò trí của EPROM, RAM và PIO trong không gian đòa chỉ 64K
Phương pháp tốt hơn để nhận được cùng kết quả là dùng một cổng OR có 5 ngõ
vào, đường
đòa c
5 ngõ vào này được nối với các đường đòa chỉ A11-A15. Nếu và chỉ nếu 5
hỉ này đều bằng 0, do vậy
CS
được xác lập (xác lập ở mức thấp). Trên thực tế
không có cổng OR 5 ngõ vào ở các họ SSI chuẩn. Cổng NOR 8 ngõ vào được sản xuất
nhiều và có số ngõ vào tương đối thích hợp, ta sử dụng cổng này bằng cách nối đất 3
ngõ vào không dùng và đảo tín hiệu ngõ ra để có cùng kết quả với cổng OR 5 ngõ
vào, như trong hình 3.13 (a). Theo quy ước, các ngõ vào không sử dụng sẽ không được
vẽ trên sơ đồ mạch.
Ta cũng dùng cùng nguyên tắc như vậy cho RAM. Các byte của RAM ứng với
các đòa chỉ nhò phân có dạng 10000xxxxxxxxxxx, nên cần thêm một cổng đảo cho
đườn
å xác lập CS cho PIO chỉ khi trên bus đòa chỉ xuất
hiện đúng đòa chỉ như trình bày trong hình vẽ. Ta sử dụng 2 cổng NAND 8 ngõ vào một
g đòa chỉ A15 như trên hình vẽ.
Giải mã đòa chỉ cho PIO hơi phức tạp hơn do PIO được chọn bởi 4 đòa chỉ có dạng
11111111111111xx. Một mạch có the
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-84-
cổng OR 2 ngõ vào để nối các đường trên bus đòa chỉ với chân
CS
của PIO. Để thiết
lập mạch logic giải mã đòa chỉ cho hình 3.16 (a), cần dùng 6 chip SSI : 4 chip 8 ngõ
vào, 1 cổng OR 2 ngõ vào và một chip có 3 cổng đảo.Tuy nhiên, nếu máy tính thực sự

chỉ có một CPU, 2 chip nhớ và PIO, ta có thể dùng một thủ thuật để đơn giản hóa việc
giải mã đòa chỉ. Thủ thuật này thực tế dựa vào tất cả các đòa chỉ của EPROM và chỉ có
đòa chỉ của EPROM có bit A15 bằng 0, ta có thể nối trực tiếp
CS
với A15 như trong
hình 3.16 (b). Đến đây ta nhận thấy việc quyết đònh đặt RAM ở đòa chỉ 8000H có vẻ
bớt tùy tiện. Có thể thực hiện giải mã RAM bằng cách chú ý đến các đòa chỉ của RAM
đều có dạng 10xxxxxxxxxxxxxx, do vậy chỉ cần 2 bit là đủ. Tương tự, một đòa chỉ bất
kỳ bắt đầu bằng 11 phải là đòa chỉ của PIO. Mạch logic giải mã đầy đủ bây giờ chỉ cần
2 cổng NAND và 1 cổng đảo. Do cổng đảo còn được tạo ra từ một cổng NAND bằng
cách nối 2 ngõ vào lại với nhau, ta chỉ cần 1 chip có 4 cổng NAND 2 ngõ vào. Mạch
logic giải mã đòa chỉ ở hình 3.16(b) được gọi là mạch giải mã đòa chỉ từng phần (
partial address decoding ) do không sử dụng toàn bộ đòa chỉ.
Bất lợi của cách giải mã đòa chỉ này là việc đọc ở các đòa chỉ 0-0010-
00000000000 hoặc 0-0011-00000000000 hoặc 0-0100-00000000000 sẽ cho cùng kết
quả. Thực tế, mọi đòa chỉ ở nửa dưới của không gian đòa chỉ sẽ chọn EPROM. Do ta
khôn
Hình 3.16: (a) Giải mã đòa chỉ toàn phần
(b) Giải mã đòa chỉ từng phần
g sử dụng các đòa chỉ khác với 00000xxxxxxxxxxx nên sự việc trên không gây
một tổn hại nào. Tuy nhiên, nếu các nhà thiết kế máy tính muốn có thể nâng cấp trong
tương lai, họ sẽ không dùng phương pháp giải mã đòa chỉ từng phần.
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-85-


CHƯƠNG 4
LỚP VI CHƯƠNG TRÌNH


Ranh giới giữa phần cứng và phần mềm không được xác đònh rõ, hơn nữa lại
thường xuyên dòch chuyển. Các máy tính trước đây có các lệnh số học, logic, dòch, so
sánh, lập vòng, v.v. … được thực thi trực tiếp bởi phần cứng. Với mỗi một lệnh, hòên
hữu một mạch phần cứng riêng biệt để thực hiện lệnh này. Người ta có thể tháo ốc các
bản mạch cũ (back panel) và chỉ ra các thành phần điện tử dùng cho lệnh chia, tối
thiểu cũng về mặt nguyên tắc.
Trên các máy tính lớp hiện nay, không còn đủ khả năng tách riêng các mạch chia
do bởi chúng không hiện hữu. Tất cả các lệnh có thể có có ở lớp máy qui ước (thí dụ
các lệnh số học, logic, dòch, so sánh và lập vòng) được thực thi từng bước bởi một trình
phiên dòch chạy trên lớp vi chương trình .
Ngày nay, thay vì tìm kiếm các mạch chia chúng ta lấy ra một bảng liệt kê của vi
chương trình và tìm kiếm phần chương trình phiên dòch các lệnh chia.
Mặc dù các phương trình ơ ûmột lớp có thể được thực thi bởi một trình phiên dòch,
và m phiên ực thi bởi một trình phiên dòch
khác ệ thống lớp bậc â tận. Lớp dưới cùng phải là một
máy phần cứng thực sự với các mạch tích hợp, các nguồn cùng lớp và các đối tượng
“cứng“ tương tự khác, chúng đã được đề cập đến trong chương trước. Trong chương
này chúng ta sẽ nghiên cứu cách thức vi chương trình điều khiển các thành phần phần
cứng và cách thức vi chương trình p của lớp máy quy ước. Ngày nay,
có những máy không đươ õng chính vì vậy nên với
lớp nay chúng ta chỉ khảo ôi.
ặc dù trình dòch này cũng có thể được th
, h này không thể tiếp tục đến vo
hiên dòch các lệnh
ïc vi chương trình hoá (máy RISC), cu
sát sơ lược có tính chất lòch sử mà thø
Do cấu trúc của lớp vi chương trình, gọi là vi cấu trúc, được xác đònh bởi phần
cứng nên thường thô sơ và khó lập trình. Các khảo sát về đònh thì thường quan trọng và
chúng đã dẫn Rosin ( 1974 ) đến đònh nghóa vi chương trình là “sự hiện thực các hệ
thống hợp lý đày triển vọng thông qua sự phiên dòch trên các máy không hợp lý “ .

Lớp vi chương trình có một chức năng đặc biệt: Thực thi các trình phiên dòch cho
các máy ảo khác. Mục đích của thiết kế này hiển nhiên dẫn đến một tổ chức được tối
ưu hóa cao độ đối với việc tìm-nạp, giải mã và thực thi các lệnh của lớp máy quy ước,
và trong một số trường hợp, các lệnh phức tạp hơn nữa.
Chúng ta sẽ bắt đầu việc khảo sát lớp vi chương trình bằng việc nhắc lại một
cách tóm tắt các khối cơ bản trong mạch số, chúng là một phần trong cấu trúc của lớp
vi chương trình do vậy cũng liên quan đến các vi lập trình viên (microprogrammer). Vi
chương trình viên là người viết các vi chương trình, không phải là lập trình viên nhỏ
(small programmer).
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-86-
Kế đến chúng ta đi vào trọng tâm của vấn đề, cách thức các lệnh phức tạp hơn
được thiết lập từ chuỗi các lệnh (primitive).
Công việc của vi lập trình viên là viết một chương trình điều khiển các thanh ghi,
các bus, các ALU, các bộ nhớ và các thành phần phần cứng khác của máy. Các thành
phần này hoặc được tìm thấy trong các tài liệu về mạch số hoặc đã được khảo sát
trong chương trước, ở đây chúng ta chỉ nhắc lại một cách tóm tắt.
I. NHẮC LẠI LỚP VẬT LÝ:
1. Các thanh ghi:
Thanh ghi là thành phần lưu trữ thông tin. Lớp vi chương trình luôn luôn có một
số tha
ài chip xử lý.
nhiêu
ät thanh ghi không làm thay đổi nội dung
của t
nh ghi nhằm lưu dữ thông tin cần thiết cho việc xử lý lệnh đang được phiên dòch.
Các thanh ghi đại khái cũng giống như bộ nhớ chính, điểm khác nhau là các thanh ghi
được đặt bên trong bộ xử lý nên chúng được đọc và ghi nhanh hơn so với việc đọc và
ghi các từ trong bộ nhớ chính, bộ nhớ thường đặt bên ngo

Các máy tính lớn hơn và đắt tiền hơn thường có nhiều thanh ghi hơn các máy nhỏ
và rẽ tiền, chúng phải sử dụng bộ nhớ chính để lưu trữ các kết quả trung gian. Trên
một số máy tính, một nhóm thanh ghi được đánh số 0, 1, 2 … , n - 1 có giá trò ở lớp vi
chương trình còn được gọi là cục bộ (local) hay bộ nhớ nháp (Scratchpad memory).
Một thanh ghi có thể đặt trưng hoá bằng một con số cho biết thanh ghi lưu trữ bao
bit. Thông tin đặt trong thanh ghi sẽ tồn tại cho đến khi có một thông tin khác
thay thế. Qúa trình đọc thông tin ra khỏi mo
hanh ghi này. Nói cách khác, khi một thanh ghi được đọc, một bản sao nội dung
của thanh ghi được tạo ra và bản gốc trong thanh ghi không bò xáo trộn.
2. Bus nội:
Bus nội là tập hợp các đường dây truyền tín hiệu theo dạng song song. Thí dụ:
dung của một thanh ghi được sao chép đến một
hống đã khảo sát ở chương 3, các bus này chỉ kết
nối hai thành phần do vậy không cần các đường đòa chỉ hoặc các đường điều khiển
bao q
hướng chuyển
dữ lie
các bus được dùng để cho phép nội
thanh ghi khác. Không giống bus hệ t
uát chỉ cần n đường dữ liệu và trong trường hợp tổng quát một hoặc hai đường
điều khiển cũng đủ. Các bus được dùng do bởi việc chuyển song song tất cả các bit
cùng một lúc sẽ nhanh hơn nhiều so với truyền nối tiếp từng bit một ở mỗi thời điểm.
Một bus có thể là đơn hướng (unidirectional) hay song hướng (bidirectional). Bus
đơn hướng chỉ có thể chuyển dữ liệu theo một chiều trong khi bus song
äu theo cả hai chiều nhưng không đồng thời. Các bus đơn hướng điển hình được
dùng để nối hai thanh ghi, một thanh ghi luôn luôn là nguồn và thanh ghi còn lại luôn
luôn là đích. Các bus song hướng điển hình được dùng khi bất kỳ thanh ghi nào trong
tập thanh ghi cũng có thể là nguồn hoặc là đích.
Nhiều thành phần có khả năng tự kết nối hoặc không kết nối về mặch đòên với
bus (nhưng vẫn kết nối về mặt vật lý. Các kết nối này có thể được thực hòên hoặc

không trong vài ngiây. Một bus mà các thành phần kết nối có đặc tính này được gọi là
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-87-
bus ba trạng thái (tristate bus) vì mỗi một đường của bus có thể là 0, 1 hoặc không kết
nối. Các bus ba trạng thái được sử dụng rộng rãi khi có nhiều thành phần nối đến bus
và chúng đều có khả năng đưa thông tin lên bus .
mô tả một thanh ghi 8 bit được nối với một bus nhập và một bus
xuất.

nên b
Hình 4.1 (a)
Thanh ghi bao gồm 8 flip flop loại D, mỗi flip flop lưu trữ 1 bit và được nối với
bus xuất qua một cổng đệm không đảo. Thanh ghi có hai tín hiệu điều khiển, CK và
cho phép xuất OE (output enable), nối đến tất cả các flip flop. Bình thường 2 tín hiệu
này ở trạng thái tónh nhưng thỉnh thoảng chúng được xác lập, gây nên tác động tương
ứng. Khi CK không xác lập, nội dung của thanh ghi bởi các tín hiệu trên Bus. Khi CK
xác lập, thanh ghi được nạp từ bus nhập. Khi OE không xác lập, thanh ghi không được
kết nối với bus xuất. Ngược lại khi OE được xác lập, nội dung của thanh ghi được nạp
us xuất ( thanh ghi xuất thông tin lên bus )

Hình 4.1 (a) chi tiết một thanh ghi 8-bit nối với một bus nhập và một bus xuất b)
ký hiệu của một thanh ghi 16 – bit với một bus nhập và 2 bus xuất
Nếu có một thanh ghi khác, R chẳng hạn, có các ngõ vào nối với Bus xuất của
thanh ghi vừa mô tả ở trên, thanh gi này có thể truyền thông tin đến R. Để thực hiện
điều này, OE phải được xác lập và giữ ở trạng thái này đủ lâu để đưa thông tin lên bus
ổn đònh. Kế đến đường CK của R được xác lập để nạp cho R thông tin này. Thao tác
mở cổng đưa thông tin của một thanh ghi lên bus để nột thanh ghi khác nạp vào thường
xảy ra ở lớp vi chương trình.
Nguyễn Hữu Lộc Khoa Vật Lý

Cấn Trúc Máy Tính
-88-
Hình 4.1 b) trình bày một thanh ghi 16 bit với 2 bus xuất , mỗi bus được điều
khiển bơiû một tín hiệu OE khác nhau
II. MỘT VÍ DỤ VỀ VI CHƯƠNG TRÌNH:


Hình 4.2: Sơ đồ khối của 1 CPU đơn giản của một máy tính điện tử thiết kế theo
phương pháp vi chương trình hoá.
Để thực hiện một lệnh cộng (ADD) cần một hệ tối thiểu các phép vi toán:
Ký tự gợi nhớ Ghi chú
MAR-M Nối MAR với BUS M
MBR-M Nối MBR với BUS M
PC-D Nối PC với BUS D
IA-D Nối IA (của IR) với BUS D
AC-D Nối Accumulator với BUS D
MTS Nối BUS M với BUS S qua ALU
DTS Nối BUS D với BUS S qua ALU
S-MAR Nối BUS S với MAR
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-89-
S-MBR Nối BUS S với MBR
S-PC Nối BUS S với PC
S-IR Nối BUS S với IR
S-AC Nối BUS S với AC
R Đọc nội dung trong Mem ra MBR
W Viết nội dung từ MBR vào Mem
PLUS Cộng nội dung có trên BUS D và BUSM tại ALU và
đưa ra BUS S

ONE Nối BUS D với BUS S qua ALU cộng 1
JMP Nhảy đến đòa chỉ trong lệnh sau nếu A=0
JOPC Nhảy đến đòa chỉ của mã lệnh (giải mã lệnh)
Hình 4.3: hệ tối thiểu các phép vi toán


VI LỆNH MEM Nhảy ALU BUSM BUSD BUSS Đòa
chỉ
PC-MAR DTS PCD SMAR
|ADDR| R
(MBR)IR MTS MBRM SIR
DECOD JOPC
(IA)MAR DTS IAD SMAR
|DATA| R
MBR+A PLUS MBRM ACD SAC
PC+1 ONE PCD SPC
Hình 4.4: Vi chương trình thực hiện lệnh ADD
ơng trình con
- Đánh đòa chỉ thông số hoá
Ưu đie
lầm logic
- Có khả năng mô phỏng nhiều thiết bò có chức năng khác nhau
bằng 1 máy
- Xây dựng kết cấu của hệ thống có thể quyết đònh trong giai đoạn
cuối của quá tr
Sử dụng các phương pháp viết chương trình:
- Móc nối chư
- Đánh đòa chỉ chỉ số hoá
åm:
Giảm sai

ình thiết kế

Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-90-
CHƯƠNG 4:


Ra giữa phần cư lại
thường xuyên dòch chuyển. Các máy tính trước đây
sánh, lậ , v.v. … được một lệnh, hòên
hữu một mạch phần cứng riên tháo ốc các
bản m nh chia, tối
thiểu
rên các máy tính lớp hiện nay, không còn đủ khả năng tách riêng các mạch chia
do bởi chúng không hiện hữu. Tất cả các lệnh có thể có có ở lớp máy qui ước (thí dụ
á ho , dòch ùnh v òng hực bư một
phiên dòch chạy trên lớp vi chương trình .
nay, t ay vì tìm k ám các m hia chu g ta lấy ät ba ê cu vi
chương trình và tìm kiếm phần chương trình phiên dòch các lệnh chia.
dù các hương trìn ơ ûmột lớp có thể được thực thi bởi một trình phiên dòch,
được thực thi bởi một trình phiên dòch
ống lơ bậc này k ông the tục đến vô tận. Lớp dưới cùng phải là một
máy phần cứng thực sự với các mạch tích hợp, các nguồn cùng lớp và các đối tượng
na g ta sẽ hiên cứu c ùch thức ơng tr h điều các th hần p àn
cứng và cách thức vi chương trình phiên dòch
có nh RISC), cũng chính vì vậy nên với
lớp n òch sử mà thôi.
Do cấu trúc của lớp vi chương trình, gọi là vi cấu trúc, được xác đònh bởi phần
cứng nên thường thô sơ và khó lập trình. Các kh nh thì thường quan trọng và

ẫn Rosin chương trình là “sự hiện thực các hệ
thông qua sự phiên dòch trên các máy không hợp lý “ .
Lớp vi chương trình có một chức năng đặc
các máy ảo kh ối
ưu hóa cao độ đối với việc tìm-nạp, giải mã
và trong một so
Chúng ta lớp vi chương trình bằng việc nhắc lại một
cách tóm tắt các khối cơ bản trong mạch số, chúng là một phần trong cấu trúc của lớp
vi chương trình do vậy cũng liên quan đến các vi lập trình viên (microprogrammer). Vi
chương trình viên là người viết các vi chương trình, không phải là lập trình viên nhỏ
(small programmer).
Kế đến chúng ta đi vào trọng tâm của vấn đề, cách thức các lệnh phức tạp hơn
được thiết lập từ chuỗi các lệnh (primitive).
Công việc của vi lập trình viên là viết một chương trình điều khiển các thanh ghi,
các bus, các ALU, các bộ nhớ và các thành phần phần cứng khác của máy. Các thành
ÙP VI CHƯƠNG TRÌNH
nh giới ùng và phần mềm không được xác đònh rõ, hơn nữa
có các lệnh số học, logic, dòch, so
thực thi trực tiếp bởi phần cứng. Với mop vòng ãi
g biệt để thực hiện lệnh này. Người ta có thể
à chỉ ra các thành phần điện tử dùng cho lệa back panel) v
cũng về mặt nguyên tắc.
ïch cũ (
T
các lệnh so ïc, logic , so sa à lập v ) được t thi từng ớc bởi trình
Ngày h ie ạch c ùn ra mo ûng liệt k ûa
Mặc p h
và mặc dù trình phiên dòch này cũng có thể
khác, hệ th ùp h å tiếp
“cứng“ tương tự khác, chúng đã được đề cập đến trong chương trước. Trong chương

øy chún ng a vi chư ìn khiển ành p ha
các lệnh của lớp máy quy ước. Ngày nay,
áõng máy không được vi chương trình hoá (m
ày chúng ta chỉ khảo sát sơ lược có tính chất l
ảo sát về đò
( 1974 ) đến đònh nghóa vi chúng đã d
thống hợp lý đày triển vọng
biệt: Thực thi các trình phiên dòch cho
ác. Mục đích của thiết kế này hiển nhiên dẫn đến một tổ chức được t
và thực thi các lệnh của lớp máy quy ước,
á trường hợp, các lệnh phức tạp hơn nữa.
sẽ bắt đầu việc khảo sát
Nguyễn Hữu Lộc Khoa Vật Lý
Cấn Trúc Máy Tính
-91-
phần này hoặc được tìm thấy tron ạch số hoặc đã được khảo sát
trong chương trước, ở đây ắt.
I. NHẮC LẠI LỚP VẬT LÝ:
g các tài liệu về m
chúng ta chỉ nhắc lại một cách tóm t

1. Các thanh ghi:
Thanh ghi là thành phần lưu trữ thông tin. Lớp vi chương trình luôn luôn có một
số thanh ghi nhằm lưu dữ thông tin cần thiết cho việc xử lý lệnh đang được phiên dòch.
Các thanh ghi đại khái cũng giống như bộ nhớ chính, điểm khác nhau là các thanh ghi
được đặt bên trong bộ xử lý nên chúng được đọc và ghi nhanh hơn so với việc đọc và
ghi ca
ïc đánh số 0, 1, 2 … , n - 1 có giá trò ở lớp vi
chươn
h ghi lưu trữ bao

nhiêu
ùc từ trong bộ nhớ chính, bộ nhớ thường đặt bên ngoài chip xử lý.
Các máy tính lớn hơn và đắt tiền hơn thường có nhiều thanh ghi hơn các máy nhỏ
và rẽ tiền, chúng phải sử dụng bộ nhớ chính để lưu trữ các kết quả trung gian. Trên
một số máy tính, một nhóm thanh ghi đươ
g trình còn được gọi là cục bộ (local) hay bộ nhớ nháp (Scratchpad memory).
Một thanh ghi có thể đặt trưng hoá bằng một con số cho biết than
bit. Thông tin đặt trong thanh ghi sẽ tồn tại cho đến khi có một thông tin khác
thay thế. Qúa trình đọc thông tin ra khỏi một thanh ghi không làm thay đổi nội dung
của thanh ghi này. Nói cách khác, khi một thanh ghi được đọc, một bản sao nội dung
của thanh ghi được tạo ra và bản gốc trong thanh ghi không bò xáo trộn.
2. Bus nội:
Bus nội là tập hợp các đường dây truyền tín hiệu theo dạng song song. Thí dụ:
các bus được dùng để cho phép nội dung của một thanh ghi được sao chép đến một
thanh ghi khác. Không giống bus hệ thống đã khảo sát ở chương 3, các bus này chỉ kết
nối h
.
guồn và thanh ghi còn lại luôn
luôn
. Một bus mà các thành phần kết nối có đặc tính này được gọi là
bus b
rãi khi có nhiều thành phần nối đến bus
và ch
ai thành phần do vậy không cần các đường đòa chỉ hoặc các đường điều khiển
bao quát chỉ cần n đường dữ liệu và trong trường hợp tổng quát một hoặc hai đường
điều khiển cũng đủ. Các bus được dùng do bởi việc chuyển song song tất cả các bit
cùng một lúc sẽ nhanh hơn nhiều so với truyền nối tiếp từng bit một ở mỗi thời điểm
Một bus có thể là đơn hướng (unidirectional) hay song hướng (bidirectional). Bus
đơn hướng chỉ có thể chuyển dữ liệu theo một chiều trong khi bus song hướng chuyển
dữ liệu theo cả hai chiều nhưng không đồng thời. Các bus đơn hướng điển hình được

dùng để nối hai thanh ghi, một thanh ghi luôn luôn là n
là đích. Các bus song hướng điển hình được dùng khi bất kỳ thanh ghi nào trong
tập thanh ghi cũng có thể là nguồn hoặc là đích.
Nhiều thành phần có khả năng tự kết nối hoặc không kết nối về mặch đòên với
bus (nhưng vẫn kết nối về mặt vật lý. Các kết nối này có thể được thực hòên hoặc
không trong vài ngiây
a trạng thái (tristate bus) vì mỗi một đường của bus có thể là 0, 1 hoặc không kết
nối. Các bus ba trạng thái được sử dụng rộng
úng đều có khả năng đưa thông tin lên bus .
Nguyễn Hữu Lộc Khoa Vật Lý

×