Upload
trankien
View
219
Download
0
Embed Size (px)
Citation preview
Chương 7
BỘ XỬ LÝ VÀ BỘ NHỚ PROCESSOR AND MEMORY
Nội dung
7.1. Bộ xử lý trung tâm - The central
processing unit (CPU).
7.2. Bộ nhớ chính - The main memory
7.3. Các đường truyền của bộ nhớ - Memory
buses
7.4. Kiến trúc kết nối - I/O buses
Giới thiệu
Microprocessor
Giới thiệu
Bộ xử lý trung tâm – CPU The central processing unit
Còn gọi là bộ xử lý (processor), vi xử lý (micro-processor).
CPU là bộ não của máy tính có nhiệm vụ thi hành các lệnh
của chương trình và xử lý các dữ liệu trong chương trình.
Các thành phần chính của CPU:
Đơn vị điều khiển
(The Control Unit)
Đơn vị số học luận lý
(The Arithmetic Logic Unit (ALU))
Các thanh ghi (registers)
Bộ xử lý trung tâm
The central processing unit (CPU)
ROM PROM FLASH
Main Memory (RAM)
Cache Memory
Decoder
Program control
register
Instruction
register
Memory address
register
Memory buffer
register
Input/Output
register
General-purpose
register
Accumulator
register
General-purpose
register
General-purpose
register
General-purpose
register
.
.
.
I/O
D
E
V
I
C
E
S
Control Unit Arthmetic Logic Unit
Central Processing Unit (CPU)
Đơn vị điều khiển – Control Unit (CU)
Đơn vị điều khiển (CU): chọn và dịch các lệnh của chương
trình, sau đó thực thi chúng.
CU không thực sự thi hành bất kỳ quá trình nào trên dữ
liệu, nhưng nó đóng vai trò là một hệ thống trung tâm cần
thiết điều khiển các thành phần khác của máy tính.
CU quản lý và phối hợp hoạt động của toàn bộ hệ thống
máy tính kể cả việc nhập và xuất dữ liệu.
CU nhận các lệnh từ bộ nhớ chính, dịch các lệnh, và gửi
các tín hiệu tới các đơn vị khác của hệ thống để thực thi
chúng.
Đơn vị số học logic
The Arithmetic Logic Unit (ALU)
Đơn vị số học logic (ALU): thực thi các lệnh tính toán
diễn ra trong suốt quá trình xử lý dữ liệu.
Khi đơn vị điều khiển (CU) gặp một lệnh có các phép toán
số học (cộng, trừ, nhân, chia) hay phép toán luận lý (nhỏ
hơn, bằng, lớn hơn), thì nó chuyển quyền điểu khiển cho
ALU.
Trong trường hợp máy tính nhỏ, toàn bộ CPU (cả đơn vị
điều khiển và ALU) được chứa trong 1 chip đơn siêu nhỏ
được gọi là bộ vi xử lý.
Bộ xử lý trung tâm – CPU The central processing unit
Các khái niệm:
Tập các chỉ thị - Instruction Set.
Thanh ghi - Register.
Tốc độ bộ xử lý - Processor Speed.
CISC and RISC Processors.
CISC: Complex Instruction Set Computer
RISC: Reduced Instruction Set Computer
EPIC :Explicitly Parallel Instruction Computing
Tập lệnh - instruction set
Tập lệnh (instruction set) là các chỉ thị mà CPU sẽ thực thi.
Mỗi họ CPU có một tập lệnh riêng. Các chương trình
thường được viết dựa trên tập lệnh của một họ CPU do đó
chương trình thực hiện trên họ CPU này không hoạt động
được ở CPU họ khác.
Ví dụ: CPU của máy IBM khác CPU của các nhà sản xuất
khác như Sony, Toshiba,…
Hầu hết các CPU có hơn 200 lệnh (cộng, trừ, so sánh,…)
trong tập lệnh của chúng.
Thanh ghi - Register
Các thanh ghi được gắn với CPU bằng các mạch điện tử
dùng để giữ thông tin tạm thời và là một phần của CPU
(không phải bộ nhớ chính).
Chiều dài của thanh ghi bằng với số bit mà nó lưu trữ. Các
loại thanh ghi: 8 bit, 32-bit, 64-bit...
Kích cỡ của các thanh ghi (còn gọi word size) là dung
lượng của dữ liệu mà máy tính có thể xử lý.
Kích thước thanh ghi càng lớn, máy tính xử lý dữ liệu càng
nhanh.
Các máy tính dùng nhiều loại thanh ghi, mỗi một thanh ghi
được thiết kế để thực thi một chức năng riêng.
Thanh ghi - Register
STT Name of Register Function
1 Địa chỉ bộ nhớ
Memory Address (MAR)
Nắm giữ địa chỉ của bộ nhớ đang hoạt
động.
2 Vùng đệm bộ nhớ
Memory Buffer (MBR)
Nắm giữ thông tin được chuyển tới hay
lấy từ bộ nhớ.
3 Điều khiển chương trình.
Program Control (PC)
Nắm giữ địa chỉ của lệnh kế tiếp được
thực thi.
4 Bộ chứa
Accumulator (A)
Chứa các kết quả và dữ liệu.
5 Lệnh
Instruction (I)
Nắm giữ lệnh trong khi nó đang thi hành.
6 Nhập/Xuất
Input/Output (I/O)
Giao tiếp với thiết bị Nhập/Xuất.
Chức năng của các thanh ghi
Quá trình thực thi của CPU
1. CU lấy địa chỉ của lệnh tiếp theo từ thanh ghi điều khiển chương
trình và đọc lệnh đó từ địa chỉ bộ nhớ vào trong thanh ghi lệnh của
CUCU gửi phần thao tác và địa chỉ của lệnh đến nơi giải mã và
địa chỉ thanh ghi vùng nhớ.
2. Nơi giải mã dịch lệnh và đơn vị điều khiển gửi các tín hiệu đến
đơn vị thích hợp như ALU để thực thi các tác vụ riêng biệt của
lệnh.
3. ALU thực thi các thao tác cần thiết trong dữ liệu và gửi đến đơn vị
điều khiển tín hiệu ngay khi nó hoàn tất.
4. Khi mỗi lệnh được thực thi, địa chỉ của lệnh tiếp theo cũng tự động
được truy xuất và lấy dữ liệu nhập vào bên trong chương trình điều
khiển thanh ghi, và lập lại từ bước 1 đến bước 4.
Quá trình thực thi của CPU
Tốc độ bộ xử lý - Processor Speed
Các thao tác thường được đồng bộ bởi 1 đồng hồ điện tử
được xây dựng bên trong gọi là đồng hồ hệ thống, nó sản
xuất ra hàng triệu xung điện đều đặn trong mỗi giây (gọi là
chu kỳ đồng hồ).
Một chu kỳ là khoảng thời gian để thực hiện một thao tác.
Chu kỳ đồng hồ càng ngắn thì bộ xử lý càng nhanh.
Tốc độ của đồng hồ được đo bằng megahertz (hay
MHz)/giây.
1 MHz = 1 triệu chu kỳ/giây
1 GHz = 1 tỷ chu kỳ/giây
Các CPU hiện nay đạt 2-4 GHz
Tốc độ bộ xử lý - Processor Speed
Bộ xử lý CISC và RISC
Kiến trúc CISC (Complex Instruction Set Computer)
Các lệnh của CPU có chiều dài khác nhau.
Thời gian thi hành lệnh cũng khác nhau.
Giúp lập trình bằng ngôn ngữ máy dễ dàng hơn.
Phức tạp và chi phí cao để sản xuất.
Hầu hết các máy tính cá nhân hiện nay dùng bộ vi xử
lý CISC.
Bộ xử lý CISC và RISC
Kiến trúc RISC (Reduced Instruction Set Computer)
Các lệnh dài bằng nhau. Có bộ tập lệnh nhỏ
Thời gian thi hành các lệnh chỉ bằng 1 chu kỳ đồng hồ.
Cung cấp khả năng thi hành nhiều hoạt động cùng lúc
(Super scalar execution).
Dùng cơ chế đường ống (Pipelining) để giảm thời gian
thi hành. Đoán trước việc phân nhánh (Branche
prediction).
Thiết kế đơn giản hơn, tốc độ nhanh hơn, ít phức tạp
hơn, và chi phí ít hơn để sản xuất so với các bộ xử lý
CISC.
Bộ xử lý CISC và RISC
Cơ chế đường ống
Các bộ xử lý EPIC Explicity Parallel Instruction Computing
Bộ xử lý dựa trên thiết kế IA-64 có bộ tập lệnh 64-bit
mới của họ (ISA) là IA-64.
Đơn giản và mạnh hơn các bộ xử lý CISC hay RISC
truyền thống.
Ba điểm quan trọng của công nghệ EPIC là tính rõ
ràng, sự khẳng định và sự suy đoán.
Các bộ xử lý EPIC Explicity Parallel Instruction Computing
Các đặc điểm:
Song Song - Explicit Parallelism:
Bộ vi xử lý cho phép nhiều phần mềm giao tiếp cùng
một lúc đến bộ xử lý nên các thao tác có thể được
thực hiện cùng một lúc.
Các bộ xử lý EPIC
Xác nhận - Predication:
Làm giảm các lệnh rẽ nhánh và loại bỏ các nhánh
không báo trước.
Tại thời gian thực thi của lệnh rẽ nhánh:
Nếu sự suy đoán đúng, thì bộ xử lý sẽ thực thi và các
kết quả của chúng có thể trực tiếp dùng ngay bởi bộ vi
xử lý.
Nếu sự suy đoán sai, các kết quả của sự thực thi sẽ bị
bỏ qua.
Các bộ xử lý EPIC
Sự suy đoán - Speculation:
Là một kỹ thuật làm giảm ảnh hưởng của bộ nhớ đến
tốc độ của bộ xi xử lý không đều nhau.
Mục đích chính là chia việc nhập dữ liệu, không chỉ
cho phép bộ xử lý nhập từng mẫu dữ liệu từ bộ nhớ
trước khi chương trình thực sự cần nó, mà còn trì
hoãn việc thông báo sự thực thi nếu dữ liệu đã nhập
bị sai luật.
Bộ nhớ chính - The main memory
Bộ nhớ chính - The main memory
Gồm các chip trên bảng mạch chính hay trên một bản
mạch nhỏ gắn liền với bảng mạch chính của một hệ thống
máy tính
Là nơi lưu trữ các chương trình và dữ liệu cần trong suốt
quá trình xử lý dữ liệu.
Còn gọi là bộ nhớ RAM và ROM.
Bộ nhớ chính - The main memory
Có 2 chức năng chính :
Chứa tạm chương trình đang được sử dụng để xử lý thông tin.
Chứa tạm dữ liệu.
Dữ liệu dùng trong máy tính có 3 loại :
Dữ liệu ban đầu nhận từ khối nhập.
Dữ liệu trung gian đang được xử lý.
Kết quả cuối cùng chờ đưa ra khối xuất.
Bộ nhớ chính - The main memory
Một số khái niệm về bộ nhớ chính:
Tiêu chuẩn đánh giá kho lưu trữ-Storage Evaluation
Criteria.
Tổ chức bộ nhớ chính - Main Memory Organization.
Dung lượng bộ nhớ chính - Main Memory Capacity.
RAM tĩnh và RAM động - Static and Dynamic RAM.
Bộ nhớ chỉ đọc - Read-Only Memory.
Bộ nhớ Cache - Cache Memory.
Bộ nhớ chính - Tiêu chuẩn đánh giá kho lưu trữ
1. Sức chứa của kho: lượng dữ liệu có thể được lưu trữ trong kho.
2. Thời gian truy cập: thời gian đòi hỏi để xác định và tìm kiếm
kho dữ liệu.
3. Sự tiêu tốn mỗi bit của kho: là sự tiêu tốn cúa 1 đơn vị kho cho 1
sức chứa của kho.
4. Tính khả biến: Nếu đơn vị lưu trữ có thể giữ lại dữ liệu đã được
cất trong kho được gọi là ổ lưu trữ không khả biến. Ngược lại, nếu
dữ liệu đã lưu trữ bị mất khi máy bị tắt hay treo gọi là kho khả
biến.
5. Truy cập ngẫu nhiên: Nếu thời gian truy cập dữ liệu độc lập
trong vùng dữ liệu của kho, thì nó được gọi là kho truy cập ngẫu
nhiên hay bộ nhớ truy cập ngẫu nhiên (RAM).
Bộ nhớ chính – Tổ chức bộ nhớ
Bộ nhớ chính – Tổ chức bộ nhớ
Bộ nhớ chính gồm nhiều vùng lưu trữ nhỏ được gọi là vị trí hay
ô. Mỗi vị trí có thể lưu trữ một số cố định các bit gọi là độ dài
từ.
Mỗi vùng có một địa chỉ dùng để nhận dạng vùng nhớ.
Mỗi vùng nhớ có thể lưu trữ một phần tử dữ liệu hay một lệnh
gọi là nội dung vùng nhớ.
Các địa chỉ thường bắt đầu tại số 0 và địa chỉ cao nhất bằng N-1.
Hành động nhập dữ liệu vào 1 ô lưu trữ gọi là thao tác ghi vào
vùng nhớ, hành động gọi dữ liệu từ 1 ô lưu trữ gọi là thao tác
đọc vùng nhớ.
Bộ nhớ chính – Dung lượng bộ nhớ chính
Dung lượng là khả năng lưu trữ của bộ nhớ, đơn vị tính là
byte.
1KB = 1024 bytes
1MB = 1024KB
1GB = 1024MB
1TG = 1024GB
Nếu dung lượng bộ nhớ được gọi bằng words, thì cần phải
biết kích cỡ của từ theo bits hay bytes để xác định dung
lượng bộ nhớ thực của máy tính.
Bộ nhớ chính – RAM tĩnh và động
Bộ nhớ chính Bộ nhớ có chiều dài từ cố định và thay đổi
Bộ nhớ có chiều dài cố định:
Mỗi ô nhớ trong bộ nhớ chính chiếm số byte bằng
với độ dài byte của từ.
Không gian lưu trữ thì luôn được phân bổ theo bội
số của từ.
Thường được dùng trong các máy tính khoa học lớn
để tăng tốc độ của sự tính toán.
Bộ nhớ chính Bộ nhớ có chiều dài từ cố định và thay đổi
Bộ nhớ có chiều dài cố định:
Ví dụ: 1 máy với bộ nhớ có chiều dài từ 8 ký tự. Nếu từ dữ
liệu nào ít hơn 5 ký tự thì có hơn 1 nửa không gian lưu trữ
còn lại sẽ vô dụng.
Bộ nhớ chính Bộ nhớ có chiều dài từ cố định và thay đổi
Bộ nhớ có chiều dài thay đổi:
Mỗi ô nhớ trong bộ nhớ chiếm số byte bằng với độ
dài thực của các từ.
Có khả năng tính toán nhanh hơn
Dùng trong các máy tính kinh doanh nhỏ cho việc tối
ưu hóa khả năng của không gian lưu trữ.
Bộ nhớ chính Bộ nhớ có chiều dài từ cố định và thay đổi
Bộ nhớ có chiều dài thay đổi:
Ví dụ: 1 máy với bộ nhớ có chiều dài từ 8 ký tự vì 1 ký tự
có thể được đặt trong mỗi 1 ô dữ liệu của máy này nên
không lãng phí bộ nhớ.
Bộ nhớ chính – RAM tĩnh và động
RAM tĩnh (static RAM (SRAM)):
Không cần bất kỳ bản mạch bên ngoài để lưu lại dữ
liệu.
Lấy nhiều các thiết bị bán dẫn và các thiết bị khác để
lưu trữ 1 bit trong một thanh RAM tĩnh.
Các chip trong RAM tĩnh thì phức tạp và tốn nhiều
không gian cho việc cung cấp dung lượng lưu trữ.
Ram tĩnh thì nhanh hơn, tốn kém hơn, và tiêu thụ
nhiều năng lượng hơn thanh RAM động.
Bộ nhớ chính – RAM tĩnh và động
RAM động (Dynamic RAM (DRAM)):
Dùng một bản mạch ngoài để tái tạo hay làm mới
kho lưu trữ để lưu lại dữ liệu.
Các chip trong RAM động thì không phức tạp và
không tốn nhiều không gian cho việc cung cấp dung
lượng lưu trữ như RAM tĩnh.
Ram động thì không nhanh hơn, ít tốn kém hơn, và
tiêu thụ ít năng lượng hơn thanh RAM tĩnh.
Bộ nhớ chính của hầu hết các máy tính dùng RAM
động.
Bộ nhớ chính – Bộ nhớ Chỉ-Đọc
Dữ liệu được lưu trữ lâu dài và ít bị thay đổi bởi
người lập trình.
Dữ liệu được lưu trữ trong ROM (Read Only
Memory) chỉ có thể đọc và sử dụng, không bị mất khi
mất điện.
Bộ nhớ chính – Bộ nhớ Chỉ-Đọc
Có 2 loại ROM:
Programmable read-only memory(PROM):
Cho phép người dùng hiệu chỉnh để chuyển đổi các
chương trình của họ thành các microprogram và lưu
trữ nó trong Rom.
PROM được lập trình để ghi lại thông tin bằng một
thiết bị đặc biệt, gọi là PROM-programer.
PROM chỉ có thể đọc được những thông tin lưu trữ
và chỉ được ghi một lần.
Bộ nhớ chính – Bộ nhớ Chỉ-Đọc
Erasable programmable read-only memory (EPROM):
Có thể xóa các lưu trữ trong EPROM và các chip
này có thể lập trình lại để lưu lại các thông tin mới.
Loại chip này thường được sử dụng bởi các nhân
viên R&D, là người thường xuyên thay đổi các
microprogram để kiểm tra sự hiệu quả của hệ thống
máy tính với các chương trình mới.
Khi EPROM được sử dụng, thông tin được lưu trữ
chỉ có thể được đọc và tồn tại cho đến khi bị xóa.
Bộ nhớ chính – Bộ nhớ Chỉ-Đọc
Các loại bộ nhớ truy câp ngẫu nhiên
Bộ nhớ chính – Bộ nhớ Cache
Cache là bộ nhớ đệm giữa CPU và bộ nhớ chính
Cache được chế tạo từ SRAM có tốc độ làm việc rất cao và có dung
lượng nhỏ.
Nhiệm vụ của cache là làm giảm thời gian đợi (wait-state) của CPU
khi truy xuất bộ nhớ chính bằng cơ chế đọc trước các ô nhớ kế tiếp.
Các bộ xử lý hiện nay đều có cache bên trong. Trong thực tế, các lập
trình viên thì không biết đến sự tồn tại và cách dùng của nó.
Bộ nhớ chính – Bộ nhớ Cache
Quá trình thao tác của bộ nhớ cache
Các đường truyền của bộ nhớ - Memory buses
Là một nhóm các dây dẫn song song mà mỗi đường có nhiệm
vụ truyền tải 1 bit thông tin.
Đường truyền hệ thống là tuyến kêt nối giữa CPU với các bộ
phận mà nó muốn trao đổi thông tin, cụ thể là bộ nhớ và khối
xuất nhập (I/O).
Trên một tuyến có thể truyền tải nhiều loại thông tin khác nhau.
Một số đường truyền có khả năng truyền thông tin theo cả 2
chiều. Tuy nhiên, trong từng thời điểm, luồng dữ liệu chỉ đi một
chiều.
Độ rộng của tuyến (số đường) xác định chiều dài của một từ
(word) mà CPU trao đổi mỗi lần.
Ví dụ : CPU dùng bus 16 để truyền dữ liệu 32 bit thì phải thực
hiện 2 lần.
Các đường truyền của bộ nhớ - Memory buses
Mỗi hệ thống máy tính có 3 loại đường truyền:
CPU
BỘ NHỚ
CHÍNH
Data Bus
Control Bus
Address Bus
Ba loại đường truyền giữa CPU và bộ nhớ chính
Các đường truyền của bộ nhớ - Memory buses
Đường dẫn dữ liệu: dùng để truyền dữ liệu giữa CPU và
bộ nhớ.
Đường dẫn địa chỉ: dùng để mang địa chỉ của một vùng
nhớ chứa dữ liệu được chuyển đến hoặc từ bộ nhớ.
Đường dẫn điều khiển: gửi các địa chỉ và trao đổi dữ liệu
với bộ nhớ, CPU cũng cần phải gửi các tín hiệu điều khiển
đến bộ nhớ để xác định xem dữ liệu cần được đọc hay là
viết đến vùng địa chỉ đã xác định và thực hiện dưới dạng
lệnh ĐỌC/VIẾT.
Đường dẫn nhập/xuất- I/O buses
Là các đường dẫn để kết nối CPU với các thiết bị
nhập/xuất. Có 3 loại:
Đường dẫn dữ liệu: dùng để truyền dữ liệu giữa CPU với
các thiết bị nhập/xuất. Các đường dẫn dữ liệu theo tiêu
chuẩn công nghiệp là :
Đường dẫn nhập/xuất- I/O buses
Đường dẫn ISA (kiến trúc chuẩn công nghiệp): là
đường dẫn 16-bit có thể truyền dữ liệu dọc theo 8 hay
16 đường dữ liệu, tùy thuộc vào loại mạch giao tiếp
được dùng trong 1 khe mở rộng. Nghĩa là các khe mở
rộng ISA có thể chấp nhận cả 2 mạch giao tiếp 8-bit và
16-bit.
Đường dẫn nhập/xuất- I/O buses
Đường dẫn MCA(kiến trúc vi kênh): là 1 đường dẫn
32-bit, nó truyền dữ liệu dọc theo 32 luồng dữ liệu. Khe
mở rộng MCA không chấp nhận các mạch giao tiếp 8-
bit hay 16-bit mà phải thiết kế các mạch giao tiếp 32-bit
riêng biệt.
Đường dẫn EISA(Kiến trúc chuẩn công nghiệp mở
rộng): là đường dẫn 32-bit, được thiết kế để chấp nhận
và sử dụng khe mở rộng ISA. EISA thì nhanh hơn ISA,
nhưng không nhanh bằng MCA – tính tương thích của
nó thì thích ứng với các khe mở rộng 16-bit.
Đường dẫn nhập/xuất- I/O buses
Đường dẫn địa chỉ: dùng để mang địa chỉ của thiết bị
nhập/xuất được truy cập bới CPU.
Đường dẫn điều khiển: dùng để mang các lệnh như
START, READ, WRITE, REWIND, TAPE, … từ CPU đến
các thiết bị nhập/xuất. Nó cũng được dùng để mang thông
tin trạng thái của các thiết bị nhập/xuất đến CPU.
Kiến trúc kết nối
1. Kiến trúc Unibus:
Gồm một đường dẫn dữ liệu đơn, một đường dẫn địa chỉ
và một đường dẫn kiểm soát được dùng để kết nối CPU
với bộ nhớ và các thiết bị nhập/xuất.
Các đường dẫn được dùng chung cho việc chuyển dữ liệu
giữa CPU và bộ nhớ, cũng như giữa CPU và các thiết bị
nhập/xuất.
Kiến trúc kết nối
Khuyết:
Truyền dữ liệu rất chậm.
Ưu:
Thiết kế đơn giản,
Dễ dàng trong việc lập trình
Cho phép các thiết bị nhập/xuất mới dễ dàng được thêm
vào hệ thống, mà không cần thêm vào lệnh nào
Kiến trúc kết nối
Address Bus
Data Bus
Control Bus
Thiết bị Nhập/Xuất
Với bộ điều khiển kết hợp
CPU
Bộ nhớ chính
Kiến trúc kết nối đường dẫn đơn
Kiến trúc kết nối
Kiến trúc Dual Bus:
Thiết lập riêng các bus cho sự kết nối tương đối của CPU
với bộ nhớ và thiết bị nhập/xuất.
Việc truyền dữ liệu giữa CPU và bộ nhớ chính được thực
hiện bằng cách sử dụng bus kết nối CPU với memory.
Kiến trúc kết nối
Kiến trúc Dual Bus:
Gồm 2 cơ chế:
CPU
BỘ
NHỚ
CHÍNH
Data Bus
Control Bus
Address Bus
THIẾT
BỊ I/O
VÀ BỘ
ĐIỀU
KHIỂN
KẾT
HỢP
Data Bus
Control Bus
Address Bus
Kiến trúc kết nối đường dẫn kép
Kiến trúc kết nối
Busy wait:
CPU gửi yêu cầu I/O cho thiết bị thông qua bus.
Lệnh và địa chỉ của thiết bị sẽ được liên kết với yêu cầu và
được gửi bằng cách sử dụng control bus.
Control bus cài đặt chế độ “thiết bị bận” nhằm mục đích
không nhận thêm yêu cầu nào vào thiết bị, thực thi yêu cầu
và chuyển dữ liệu vào thanh ghi dữ liệu.
Sau khi hoàn thành yêu cầu, nó cài đặt chế độ “thiết bị sẵn
sàng”.
Kiến trúc kết nối
Busy wait:
CPU liên tục kiểm tra “thiết bị sẵn sàng” và chờ đến khi
chỉ thị này được thiết lập.
Khi CPU tìm thấy chỉ thị này, nó đọc dữ liệu từ thanh ghi
dữ liệu (data register).
Khi nhận được tín hiệu này, bộ điều khiển thiết bị điều
chỉnh lại các thông báo “thiết bị bận” và “dữ liệu sẵn sàng”
để chỉ định TẮT, nghĩa là nó đã sẵn sàng để chấp nhận các
yêu cầu nhập xuất mới.
Kiến trúc kết nối
Ngắt:
Trong phương thức đợi, sau khi đưa ra một yêu cầu nhập
xuất, CPU báo bận trong quá trình kiểm tra sự hoàn thành
của yêu cầu cho đến khi yêu cầu được xử lý CPU không
làm bất cứ việc gì khác.
Điều này rất không hiệu quả cho việc sử dụng bởi vì thiết
bị nhập xuất chậm hơn khoảng 1000 lần so với CPU. Thiết
bị ngắt được phát minh ra để khắc phục vấn đề này.
Truy Cập Bộ Nhớ Trực Tiếp - DMA Architecture
Dùng để tối giản sự tham gia của CPU trong chuyển đổi
dữ liệu nhập xuất
Kiến trúc Truy Nhập Bộ Nhớ Trực Tiếp
Truy Cập Bộ Nhớ Trực Tiếp - DMA Architecture
Sự di chuyển dữ liệu bao gồm các trạng thái sau:
1. CPU gửi yêu cầu nhập xuất đến bộ điều khiển DMA. Địa
chỉ thiết bị được đọc, việc định vị bộ nhớ tại nơi dữ liệu đã
được lưu, và lệnh ĐỌC sẽ đọc dữ liệu và gửi qua bằng
cách sử dụng địa chỉ I/O bus, địa chỉ memory bus, và
control bus tương ứng.
2. Với việc nhận được yêu cầu, bộ điều khiển DMA báo
“bận” tới nút BẮT ĐẦU và lưu địa chỉ bộ nhớ và số các từ
nhớ.
3. Sau đó, nó đọc từ nhớ đầu tiên từ thiết bị nhập/xuất vào
trong thanh ghi dữ liệu của nó và đưa thông báo “dữ liệu
sẵn sàng” tới nút BẬT.
Truy Cập Bộ Nhớ Trực Tiếp - DMA Architecture
4. Gửi tín hiệu ngắt đến CPU.
5 Trong khi nhận tín hiệu ngắt, CPU hoàn tất sự thực hiện
chương trình mà nó đang thực hiện, và nhượng lại địa chỉ
memory bus và data bus đến bộ điều khiển DMA cho một
chu trình nhớ.
6. DMA chuyển dữ liệu trong thanh ghi dữ liệu của nó tới bộ
nhớ được chỉ rõ bởi dung lượng của thanh ghi địa chỉ nhớ
của nó. Sau đó giảm bớt giá trị của counter xuống một và
tăng dần giá trị lưu trữ trong thanh ghi địa chỉ bộ nhớ lên
một.
Truy Cập Bộ Nhớ Trực Tiếp - DMA Architecture
7. DMA đọc từ kế tiếp từ thiết bị nhập xuất và lưu nó vào
thanh ghi dữ liệu. Sau đó ngắt CPU, một chu trình nhớ và
địa chỉ bộ nhớ và data bus đến bộ điều khiển DMA để cho
phép nó chuyển từ thanh ghi dữ liệu của nó đến ô nhớ
thích hợp. Sau đó DMA giảm giá trị đếm (counter) và tăng
giá trị lưu trữ tại thanh ghi địa chỉ nhớ của nó. Thao tác
này được lặp lại cho đến khi giá trị đếm trở về 0.
Câu hỏi và bài tập
Giáo trình trang 169
Thank you