kiến trúc máy tính

Màu nền
Font chữ
Font size
Chiều cao dòng

Câu1:Trình bày các thế hệ máy tính theo sự phát triển của công nghệ điện tử.

Trả lời:

• Thế hệ 1 ( 1946-1957)

ENIAC (Electronic Numerical Integrator and Computer) là máy tính điện tử số đầu tiên do Giáo sư Mauchly và người học trò Eckert tại Đại học Pennsylvania thiết kế vào năm 1943 và được hoàn thành vào năm 1946.

Đây là cái mới mà chưa ai nghĩ ra, tồn tại tự nhiên.-->quy luật

Sáng chế: mới ,sáng tạo, áp dụng được.

Đặc trưng của ENIAC là một máy tính khổng lồ cao 2.8m, chiều dài 20m, chiều rộng 5m.

Công nghệ dùng bong đèn điện tử, ( 18000 cái và 1500 công tắc, khối lượng là 30 tấn, tiêu thụ 140kw/h)

Có 20 thanh ghi 10 bit thực hiện được 5000 phép tính cộng / 1 s

• Thế hệ thứ 2 (1958-1964)

Lúc này công nghệ dùng bóng bán dẫn ra đời thay thế cho công nghệ dùng bong đèn điện tử.

Ra đời công nghệ làm mạch in và bộ nhớ bằng xuyến từ được dùng.

Ngôn ngữ cấp cao xuất hiện (như FORTRAN năm 1956, COBOL năm 1959, ALGOL năm 1960) và hệ điều hành kiểu tuần tự (Batch Processing) được dùng.

Kích thước máy tính giảm, rẻ tiền hơn, tiêu tốn năng lượng ít hơn

• Thế hệ thứ 3 ( 1965-1971)

Thế hệ thứ 3 đc đánh dấu bằng sự xuất hiện của mạch tích hợp MSI, SSI..

Xuất hiện mạch in nhiều lớp.

Bắt đầu xuất hiện bộ nhớ bán dẫn ROM, RAM

Xuất hiện máy tính đa chương trình.

Hệ điều hành có thời gian thực

• Thế hệ 4 ( 1972- )

Thế hệ thứ tư được đánh dấu bằng các IC có mật độ tích hợp cao (LSI: Large Scale Integration) có thể chứa hàng ngàn linh kiện. Các IC mật độ tích hợp rất cao (VLSI: Very Large Scale Integration) có thể chứa hơn 10 ngàn linh kiện trên mạch. Hiện nay, các chip VLSI chứa hàng triệu linh kiện.

1974 Intel đưa ra con chip xử lí đầu tiên intel 4004.

Bộ nhớ cache, bộ nhớ ảo, bộ nhớ bán dẫn bắt đầu đc áp dụng phổ biến.

Tốc độ xử lí của bộ VXL đc phát triển rất nhiều.

Các bộ xử lý song song pt rất nhiều.

1979 ứng dụng ARPANET

Phân loại: máy vi tính ( micro) siêu vi ting ( super) máy chủ ( sever C )

• Thế hệ 5 ( xu hướng)

Là thế hệ máy tính thông minh, trí tuệ nhân tạo, giao diện thân thiện.

Câu2.Trình bày khái niệm kiến trúc máy tính và phạm vi của kiến trúc máy tính theo mô hình máy tính 6 mức.

Trả lời:

• khái niệm kiến trúc máy tính : là tổ chức máy tính và tập lệnh của máy tính, vừa là khoa học vừa là nghệ thuật để kết nối các máy tính với nhau nhằm thảo mãn mục đích của người sử dụng.

• Phạm vi của KTMT theo mô hình máy tính 6 mức :

Kiến trúc máy tính bao gồm ba phần: Kiến trúc phần mềm, tổ chức của máy tính và lắp đặt phần cứng.

* Kiến trúc phần mềm của máy tính chủ yếu là kiến trúc phần mềm của bộ xử lý, bao gồm: tập lệnh, dạng các lệnh và các kiểu định vị.

+ Trong đó, tập lệnh là tập hợp các lệnh mã máy (mã nhị phân) hoàn chỉnh có thể hiểu và được xử lý bới bộ xử lý trung tâm, thông thường các lệnh trong tập lệnh được trình bày dưới dạng hợp ngữ. Mỗi lệnh chứa thông tin yêu cầu bộ xử lý thực hiện, bao gồm: mã tác vụ, địa chỉ toán hạng nguồn, địa chỉ toán hạng kết quả, lệnh kế tiếp (thông thường thì thông tin này ẩn).

+ Kiểu định vị chỉ ra cách thức thâm nhập toán hạng.

Kiến trúc phần mềm là phần mà các lập trình viên hệ thống phải nắm vững để việc lập trình hiểu quả, ít sai sót.

* Phần tổ chức của máy tính liên quan đến cấu trúc bên trong của bộ xử lý, cấu trúc các bus, các cấp bộ nhớ và các mặt kỹ thuật khác của máy tính. Phần này sẽ được nói đến ở các chương sau.

* Lắp đặt phần cứng của máy tính ám chỉ việc lắp ráp một máy tính dùng các linh kiện điện tử và các bộ phận phần cứng cần thiết. Chúng ta không nói đến phần này trong giáo trình. Ta nên lưu ý rằng một vài máy tính có cùng kiến trúc phần mềm nhưng phần tổ chức là khác nhau (VAX- 11/780 và VAX 8600). Các máy VAX- 11/780 và VAX - 11/785 có cùng kiến trúc phần mềm và phần tổ chức gần giống nhau. Tuy nhiên việc lắp đặt phần cứng các máy này là khác nhau. Máy VAX- 11/785 đã dùng các mạch kết hiện đại để cải tiến tần số xung nhịp và đã thay đổi một ít tổ chức của bộ nhớ trong.

Câu 3 : Trình bày tổ chức chung của hệ thống máy tính (mức vi kiến trúc)

Trả lời :

Tổ chức chung của hệ thống máy tính mức vi kiến trúc : mô tả bậc thấp cụ thể hơn về hệ thống các bộ phận cấu thành của hệ thống đc kết nối với nhau ntn và chúng hoạt động tương hỗ ntn để thực hiện được kiến trúc tập lệnh. Thành phần cơ bản của một bộ máy tính gồm: bộ xử lý trung tâm (CPU: Central Processing Unit), bộ nhớ trong, các bộ phận nhập-xuất thông tin. Các bộ phận trên được kết nối với nhau thông qua các hệ thống bus. Hệ thống bus bao gồm: bus địa chỉ, bus dữ liệu và bus điều khiển. Bus địa chỉ và bus dữ liệu dùng trong việc chuyển dữ liệu giữa các bộ phận trong máy tính. Bus điều khiển làm cho sự trao đổi thông tin giữa các bộ phận được đồng bộ. Thông thường người ta phân biệt một bus hệ thống dùng trao đổi thông tin giữa CPU và bộ nhớ trong (thông qua cache), và một bus vào-ra dùng trao đổi thông tin giữa các bộ phận vào-ra và bộ nhớ trong.

Thành phần cơ bản của một máy tính bao gồm :

- Bộ nhớ trong: Đây là một tập hợp các ô nhớ, mỗi ô nhớ có một số bit nhất định và chứa một thông tin được mã hoá thành số nhị phân mà không quan tâm đến kiểu của dữ liệu mà nó đang chứa. Các thông tin này là các lệnh hay số liệu. Mỗi ô nhớ của bộ nhớ trong đều có một địa chỉ. Thời gian thâm nhập vào một ô nhớ bất kỳ trong bộ nhớ là như nhau. Vì vậy, bộ nhớ trong còn được gọi là bộ nhớ truy cập ngẫu nhiên (RAM: Random Access Memory). Độ dài của một từ máy tính (Computer Word) là 32 bit (hay 4 byte), tuy nhiên dung lượng một ô nhớ thông thường là 8 bit (1 Byte).

- Bộ xử lý trung tâm (CPU): Đây là bộ phận thi hành lệnh. CPU lấy lệnh từ bộ nhớ trong và lấy các số liệu mà lệnh đó xử lý. Bộ xử lý trung tâm gồm có hai phần: Phần thi hành lệnh và phần điều khiển. Phần thi hành lệnh bao gồm bộ làm toán và luận lý (ALU: Arithmetic And Logic Unit) và các thanh ghi. Nó có nhiệm vụ làm các phép toán trên số liệu. Phần điều khiển có nhiệm vụ đảm bảo thi hành các lệnh một cách tuần tự và tác động các mạch chức năng để thi hành các lệnh.

- Bộ phận vào - ra: Đây là bộ phận xuất nhập thông tin, bộ phận này thực hiện sự giao tiếp giữa máy tính và người dùng hay giữa các máy tính trong hệ thống mạng (đối với các máy tính được kết nối thành một hệ thống mạng). Các bộ phận xuất nhập thường gặp là: Bộ lưu trữ ngoài, màn hình, máy in, bàn phím, chuột, máy quét ảnh, các giao diện mạng cục bộ hay mạng diện rộng...Bộ tạo thích ứng là một vi mạch tổng hợp (chipset) kết nối giữa các hệ thống bus có các tốc độ dữ liệu khác nhau.

Câu 4 : Trình bày cấu trúc của bộ xử lý trung tâm (CPU)

Trả lời :

CPU là bộ não của máy tính, nó bao gồm CU, ALU và các thanh ghi ( register). Chức năng của nó là thi hành các chương trình được chứa trong bộ nhớ của máy tính ( main memory ) bằng cách lấy các chỉ thị ở nó, kiểm tra và sau đó lần lượt thi hành các chỉ thị.

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

- Đơn vị điều khiển (Control Unit - CU): điều khiển hoạt động của máy tính theo chương trình đã định sẵn.

- Đơn vị số học và logic (Arithmetic and Logic Unit - 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ể.

- Tập thanh ghi (Register File - RF): lưu giữ các thông tin tạm thời phục vụ cho hoạt động của CPU.

- Đơn vị nối ghép bus (Bus interface Unit - BIU): kết nối và trao đổi thông tin giữa bus bên trong (internal bus) và bus bên ngoài (external bus).

Câu 5 : Trình bày sự hiểu biết của mình về các loại thanh ghi điển hình trong bộ xử lý trung tâm.

Trả lời :

Thanh ghi ( register) là các ô nhớ nằm trong CPU và được dùng để chứa dữ liệu

cho CPU làm việc, nó có kích thước nhỏ, có thể là 8, 16, 32hoặc 64 bit. Tần số làm việc của các loại thanh ghi này khá cao vì nó có cùng tần số với CPU.

a.Reg tích lũy A:

Reg này có mặt trong mọi CPU, nó tham gia vào hầu hết các phép tính, nạp toán hạng và chứa kết quả.

Độ dài của reg A thường bằng độ dài của từ xử lí của CPU.

Ngoài ra reg A còn đc dùng để trao đổi dữ liệu.

b.Thanh ghi con trỏ lệnh PC, IP ( bộ đệm chương trình):

Đây là reg chuyên dùng để chứa địa chỉ ô nhớ chứa lệnh tiếp theo được thực hiện. Sau khí CPU thực hiện xong một lệnh thì giá trị trong PC sẽ tăng lên một.

c. Thanh ghi lệnh hiện tại IR: dùng chứa địa chỉ ô nhớ có lệnh đang được thực hiện.

d.Thanh ghi trạng thái ( thanh ghi cờ):

Mỗi bit của reg này dùng để chứa trạng thái của kết quả của phép tình do ALU thực hiện. Các bít trạng thái này thường dùng làm cơ sở cho các lệnh điều khiển chương trình như: rẽ nhánh, lặp.....

-Một số loại cờ như:

+Cờ nhớ C và cờ nhớ phụ A (0 - nhớ; 1- ko nhớ).

+Cờ không ( zero) Z: cho bít kết quả có bằng 0 hay ko?

+Cờ chắn lẻ P: _ P = 0 thì số bit 1 trong kq là chẵn.

_ P = 1 thí số bit 1 là lẻ.

+Cờ dấu S: _ S = 0 à kq ≥ 0.

_ S = 1 àkq ˂ 0.

+Cờ tràn O ( 0- tràn; 1- ko tràn).

+Cờ ngắt I ( 0- CPU cấm ngắt; 1 - CPU cho phép ngắt).

+Cờ hướng D: - D = 0: hướng dữ liệu đi ra khỏi thanh ghi.

-D = 1 : hướng dữ liệu đi vào reg.

e. Thanh ghi SP- ngăn xếp: Đây là reg dùng để chứa địa chỉ trở về của CPU khi có việc rẽ nhánh hoặc ngắt, hoạt động theo nguyên tắc LIFO. SP luôn chứa địa chỉ của đỉnh ngăn xếp.

Giao dịch với ngăn xếp thông qua hai lệnh: - push: đẩy dữ liệu vào.

-pop: lấy dữ liệu ra.

f. Thanh ghi đa năng: được sử dụng cho rất nhiều mục đích như làm toán hạng và có thể chứa kết quả.

g. Thanh ghi MAR: dùng lưu trữ địa chỉ ô nhớ có chứa một phần dữ liệu hoặc lệnh sử dụng tiếp theo.

h. Thanh ghi MBR: thanh ghi này hoạt động như bộ đệm, nó chứa dữ liệu mà nó sao chép được từ MEM để sẵn sang cho CPU sử dụng.

Câu 7: Trình bày về quá trình thực hiện lệnh của một bộ vi xử lý.

Trả lời :

CPU thi hành mỗi chỉ thị theo một dãy các bước nhỏ :

1. lấy (fetch) chỉ thị tiếp theo từ trong bộ nhớ đặt vào thanh ghi chỉ thị (ỈR).

2. thay đổi con đếm chương trình (PC) để trỏ tới chỉ thị tiếp theo.

3. xác định kiểu chỉ thị vừa lấy về.

4. nếu chỉ thị sử dụng dữ liệu trong bộ nhớ thì xác định vị trí của dữ liệu.

5. lấy dữ liệu về nếu có, đặt vào các thanh ghi bên trong CPU.

6. thi hành chỉ thị

7. chứa kết quả vào nơi thích hợp.

8. trở lại bước 1 để bắt đầu thi hành chỉ thị tiếp theo.

Dãy các bước này thường đc gọi là chu kì lấy lệnh -giải mã lệnh-thi hành lệnh,đó chính là trung tâm hoạt động của mọi máy tính.

Câu 8 Trình bày về kỹ thuật đường ống (pipeline)

Trả lời : a. Khái niệm pipeline.

Pipeline là 1 kĩ thuật thực hiện lệnh trong đó các lệnh được thực hiện theo kiểu gối đầu nhau nhằm tận dụng những khoảng thời gian dỗi giữa các công đoạn, qua đó làm tăng tốc độ thực hiện lệnh của vi xử lí.

b. Mô hình pipeline.

-Trong kĩ thuật pipeline thì một lệnh sẽ được chia nhỏ thành nhiều công đoạn để thực hiện, nhìn chung thì sẽ đc chia làm 5 công đoạn:

+ IF- instruction fetch: lấy lệnh từ bộ nhớ hoặc cache.

+ ID- instruction decode: giải mã lệnh và đọc các toán hạng.

+ EX- execute: thực hiện lệnh, nếu là lệnh truy cập bộ nhớ thì tính toán địa chỉ ô nhớ.

+ MEM- memory access: đọc hoặc ghi bộ nhớ.

+ WB- write back: ghi/ lưu kết quả vào các thanh ghi.

c. Đặc điểm.

- Xử lí song song ở mức lênh. Có 5 dạng xử lí song song là: mức lệnh, mức luồng, mức nhân, mức đa xử lí và mức mạng.

- Luôn lấy lệnh mới khi tại mỗi chu kì clock, nhưng trên thực tế thì luôn có trễ, và trễ là do có các xung đột.

- Số lượng các công đoạn phụ thuộc vào thiết kế của vi xử lí, có ba loại:

+ 5 stage _pipeline đơn giản.

+ 14 satge_ PII hoặc PIII.

+ 31 stage _ PIV.

d. Xung đột.

Trên lí thuyết thì việc sử dụng kĩ thuật pipeline có thể làm tăng tốc độ vi xử lí lên gần 400% nhưng thực tế tăng được bao nhiêu thì còn phụ thuộc vào các kiểu xung đột khác nhau của kĩ thuật này, có ba kiểu xung đột cơ bản là: xung đột cấu trúc (structural hazard), xung đột dữ liệu ( data hazard), xung đột điều khiển ( control hazard).

-Struction hazard: xung đột cấu trúc.

Xung đột cấu trúc xảy ra khi có 2 lệnh cùng cố gắng sử dụng cùng một nguồn tại cùng một thời điểm, có thể là cùng ghi kết quả vào một thanh ghi, cùng truy cập vào một ô nhớ, cùng yêu cầu một bộ tính toán số học, hoặc khi việc nạp lệnh và đọc dữ liệu từ bộ nhớ diễn ra cùng một lúc.

Để khắc phục xung đột kiểu này ta thường sử dụng cách chèn trễ vào giữa các chu kì lệnh hoặc tổ chức lại các lệnh.

- Data hazard: xung đột dữ liệu.

Có ba kiểu xung đột dữ liệu là RAW ( read after write), WAR ( wirte after read) và WAW ( write after write), cụ thể như sau:

+ RAW:

Instruction 1: ADD R2, R1, R3 R2 ß R1 + R3

Instruction 2: ADD R4, R2, R3 R4 ß R2 + R3

I1 F D X M W

I2 F D X M W

+ WAR

Ví dụ:

Instruction 1 : ADD R1, R2, R3. Vậy R1ß R2 + R3.

Instruction 2: ADD R3, R4, R5. Vậy R3 ß R4 + R5.

Theo nguyên tắc hoạt động của pipeline thì hai lệnh trên sẽ được thực hiện như sau:

I1 F D X M W

I2 F D X M W

+ WAW: ví dụ

Instruction 1: ADD R1, R2, R3 R1 ß R2 + R3

Instruction 2: ADD R3, R4, R5 R3 ß R4 + R5

Thực hiện:

I1 F D X M W

I2 F D X M W

+ Ta có thể hạn chế xung đột dữ liệu bằng cách sử dụng đường dữ liệu nội đặc biệt. Ngoài ra có thể kết hợp với cả việc tổ chức lại các lệnh trong chương trình.

- Control hazard ( xung đột điều khiển).

Control hazard xảy ra khi có lệnh rẽ nhánh, do đó còn được gọi là Branch hazard. Khi lệnh rẽ nhánh được yêu cầu thực hiện, con trỏ bộ đếm chương trình (PC) sẽ chuyển đến địa chỉ đích bằng cách cộng thêm 4. Nếu con trỏ chương trình này tới đúng địa chỉ đích của nó thì rẽ nhánh này gọi là taken, còn trong trường hợp ngược lại thì gọi là untaken.

Khi lệnh i có nhánh taken thì PC sẽ không thay đổi như bình thường tới hết khâu M (memory access), sau khi tính toán và so sánh địa chỉ. Phương pháp đơn giản nhất để khắc phục control hazard là gây trễ kịp thời trên pipeline để phát hiện nhánh cho đến khâu M, sử dụng giá trị mới của PC.

Câu 9 : Trình bày chức năng và nhiệm vụ của bộ nhớ? So sánh cấu trúc bộ nhớ trong 2 kiến trúc Vonneuman và Harvard?

Trả lời :

• bộ nhớ là một thành phần quan trong của máy tính, được sử dụng để lưu trữ các chương trình và dữ liệu.

• kiến trúc Harvard được dùng để chỉ những kiến trúc máy tính mà trong đó phân biệt rõ ràng bộ nhớ dữ liệu và bộ nhớ chương trình, chúng có những đường truyền (bus) riêng để truy cập vào bộ nhớ dữ liệu và bộ nhớ chương trình (ngược lại, kiến trúc von Neumann có bộ nhớ và bộ nhớ chương trình chung). Kiến trúc Havard dành cho vi điều khiển.Chương trình điều khiển ở trong ROM,và được thiết kế theo hướng điều khiển nên vùng nhớ cho dữ liệu và chương trình sẽ khác nhau.Tức ROM là vùng nhớ chương trình còn RAM là vùng nhớ dữ liệu.Mỗi vi điều khiển ngoài ROM và RAM trên chip(ROM và RAM nội)còn có khả năng mở rộng vùng nhớ ROM và RAM(ROM và RAM ngoài)bằng các mạch giải mã địa chỉ sử dụng IC giải mã và cổng logic để tăng cường tài nguyên trên chip.

• kiến trúc von Neumann, CPU có thể đọc một lệnh, hoặc đọc/ghi dữ liệu từ bộ nhớ. Tuy vậy, cả hai quá trình tương tác với lệnh hoặc với dữ liệu, không thể thực hiện cùng lúc, vì nó sử dụng chung một đường truyền và bộ nhớ. Kiến trúc Von Newman dành cho vi xử lý,vùng nhớ chia sẻ cho dữ liệu và chương trình.Chương trình ở trong đĩa và được nạp vào RAM khi thực thi vì vậy dữ liệu và chương trình cùng tồn tại trong RAM hệ thống.

Câu10 : Trình bày khái niệm từ (Word) và các nguyên tắc sắp xếp các byte trong word.

Trả lời :

Bộ nhớ là nơi dùng để lưu trữ dữ liệu của máy tính, nó bao gồm rất nhiều ô nhớ, các loại máy tính khác nhau có thể có kích thước ô nhớ khác nhau. Thông thường hiện nay các ô nhớ gồm 8 bit tương đương với 1 byte và các byte lại đc nhóm lại thành word. Ngoài ra thì cũng có loại máy tính có dung lượng ô nhớ là 16 bit. Như vậy word bao gồm số byte mà hầu hết các lệnh của bộ xử lí thao tác như một đơn vị.

Có hai cách sắp xếp các byte trong word là big endian và little endian.

-Big endian: các byte trong word sẽ được đánh số thứ tự từ trái sang phảicó nghĩa là byte có trọng số cao hơn đứng bên phải các byte có trọng số thấp hơn..

-Little endian: các byte sắp xếp theo thứ tự từ phải sang trái, byte có trọng số cao hơn sẽ đứng bên trái các byte có trọng số thấp hơn.

.

Câu 11: trình bày chức năng, nhiệm vụ của thành phần tổ chức vào ra trong máy tính? Ưu nhược điểm của các phương pháp tổ chức vào ra?

Trả lời :

• Để máy tính giải quyết một công việc cho con người thì nó cần phải được nhập dữ liệu vào và sau khi giải quyết xong thì nó cũng cần chuyển kết quả cho con người, kết quả phải được hiển thị dưới dạng ngôn ngữ thong dụng.

Vấn đề đưa thông tin vào và lấy kết quả ra khỏi máy tính được thông qua tổ chức vào ra của máy, gọi tắt là input/output (I/O).

Vậy nhiệm vụ chính của I/O là đưa thông tin vào máy và lấy kết quả ra, tuy nhiên đôi khi không phải mọi input đều do con ng đưa vào và không phải mọi output đều lấy ra cho con ng mà là do một hệ thống máy móc khác. Như vậy thì ngoài việc đưa thông tin vào và lấy kết quả ra thì I/O còn có nhiệm vụ là ghép nối máy tính với các thiết bị ngoại vi thông qua các cổng giao tiếp vào ra.

• Có 4 phương pháp chính trong việc tổ chức I/O:

a. PP I/O được lập chương trình.

Trong pp này thì khi CPU hoạt động nó sẽ thực hiện theo vòng lặp, nó sẽ nhìn lần lượt ra tất cả các cổng giao tiếp vào ra xem có cần nhận hoặc gửi thông tin hay không, thông tin sẽ được nhận gửi từng byte một.

-Ưu: + Đơn giản nhất.

+ Thường được use trong hệ thống vi xử lí có giá thành thấp ( hệ thống nhúng).

+ Trong quá trình làm việc thì sẽ không bị ngắt.

-Nhược: Hầu hết thời gian là để kiểm tra các cổng giao tiếp với thiết bị ngoại vi, trạng thái này gọi là trạng thái luôn bận.

b. PP I/O được điều khiển bởi ngắt.

CPU chỉ khởi động sự làm viêc của thiết bị I/O, khi thiết bị làm việc xong nó sẽ gửi một tín hiệu thông báo đến cho CPU, đó là tín hiệu yêu cầu ngắt.

Ưu : CPU không phải chờ và thường đc sử dụng cho các hệ thống điều khiển nhiều thiết bị ngoại vi.

Nhược: sử dụng nhiều chu kì vì sẽ ngắt ngay khi cần thiết .

Các giao diện I/O: _ sử dụng bộ điều khiển trên card ngoại vi.

_ cắm vào các khe và cổng: PCI, ISD, USB.

c. PP I/O sử dụng DMA ( môi trường phần mềm dung chung).

Trong pp này máy đc điều khiển bởi một đơn vị điều khiển gọi là DMAC, nó có thể đọc ghi dữ liệu ra và vào bộ nhớ mà không cần sự can thiệp của CPU. Khi cần trao đổi dữ liệu thì CPU sẽ gửi các thông tin cần thiết như địa chỉ ô nhớ chứa dữ liệu, số byte cần trao đổi, địa chỉ của thiết bị I/O, hướng truyền dữ liệu, sau đó DMA sẽ thực hiện công việc dựa trên thông tin mà CPU gửi cho nó, khi hoàn tất công việc nó sẽ gửi tín iệu báo lại cho CPU.

Ưu: chỉ ngắt khi CPU yêu cầu hoàn thành hơn cho từng byte, từng bit.giải phóng CPU khỏi gánh nặng của công việc quản lý I/O.

Nhược: có sự cạnh tranh bus giữa DMA và CPU.

d. PP I/O sử dụng kênh dữ liệu.

PP này thường được sử dụng cho các máy tính lớn. Hệ thống máy tình này thường bao gồm nhiều CPU, main memory, và một bộ xử lí vào ra chuyên dụng được gọi là kênh truyền dữ liệu.

Khi CPU cần thực hiện một thao tác vào ra, nó sẽ nạp cho bộ xử lí I/O một chương trình riêng và ra lệnh cho nó thực hiện chương trình này. Như vậy CPU sẽ được giải phóng và có thể làm công việc khác, sau khi hoàn thành công việc, bộ xử lí sẽ gửi cho CPU một tín hiệu ngắt, buộc nó ngừng công việc đang làm và chú ý đến yêu cầu của I/O.

Để tránh xung đột về bus và tốc đọ xử lí công việc nhanh thì các máy tính lớn thường đc trang bị nhiều loại bus, ít nhất là ba loại:

-Bus bộ nhớ: cho phép bộ xử lí đọc ghi trực tiếp từ bộ nhớ chính.

-Bus I/O: dùng khi CPU truyền thông tin đến bộ xử lí I/O và bộ xử lí I/O truyền tín hiệu ngắt về cho CPU.

- Bus thứ ba: cho phép CPU truy cập bộ nhớ mà không cần sử dụng hai loại bus kia.

12. Trình bày khái niệm kiến trúc tập lệnh

Trả lời:

KTTL là cấu trúc của máy tính mà người lập trình ngôn ngữ máy phải hiểu để viết được chương trình cho máy đó, vì máy tính chỉ có thể hiểu được ngôn ngữ máy. Ngoài ra KTTL cũng mô tả máy để người thiết kế phần cứng có thể tạo ra một sản phẩm máy tính chuẩn

KTTL được coi là giao diện của phần cứng và phần mềm, nó cung cấp cơ chế để phần mềm nói cho phần cứng biết công việc phải làm.

Khi thiết kế một máy tính thì cần có sự thống nhất giữa phần cứng và phần mềm ở mức ISA, đây là sản phẩm của bộ biên dịch. Ở mức ISA level thì hẩu hết các máy đều hoạt động ở hai chế độ:

-Chế độ kernel cho phép hệ điều hành chạy tất cả các lệnh như: lập trình hệ thống, thao tác trực tiếp trên cache, kiến tạo thư viện hệ thống và sử dụng lệnh trực tiếp với thiết bị ngoại vi.

-Chế độ người sử dụng cho phép hệ điều hành chạy hết các ứng dụng và không cho phép thi hành các lệnh nhạy cảm.

Một KTTL cần có các tính chất sau:

-Tính trực giao: ko có các thanh ghi đặc biệt, tất cả các chế độ toán hạng có thể sử dụng với dạng lệnh hoặc dạng dữ liệu bất kì.

-Tính đầy đủ: hỗ trợ đa dạng các tác vụ và ứng dụng.

-Tính cân đối: không quá tải ý nghĩa các trường lệnh.

-Tổ chức hợp lí: các yêu cầu tài nguyên dễ xác định.

-Dễ biên dịch và dễ thực hiện.

Các vấn đề gặp phải khi thiết kế tập lệnh là:

-Các toán hạng được lưu trữ ở đâu.

-Có bao nhiêu loại toán hạng và vị trí sắp xếp như thế nào.

-Kiểu và kích cỡ toán hạng được hỗ trợ là gì, những tác vụ nào được hỗ trợ

..phân loại kiến trúc tập lệnh

2.Phân loại (6 loại).

a.KT thanh ghi tích lũy: thanh ghi tích lũy là loại thanh ghi được dùng nhiều trong tính toán.

Tập lệnh: add A, sub A, mult A, div A....

Load A, store A

Ưu: _ yêu cầu phần cứng rất thấp.

_ dễ hiểu và dễ biên dịch.

Nhược: _thanh ghi tích lũy trở thành nút cổ chai.

_ khả năng thấp đối với cơ chế song song và kĩ thuật đường ống

_ lưu lượng bộ nhớ cao.

b.KT ngăn xếp: ngăn xếp là đoạn bộ nhớ dùng để lưu địa chỉ trở về khi đang chạy chương trình mà bị ngắt hoặc cần dùng đến một chương trình con nào đấy.

Tập lệnh: add, sub, mult, div..

Push A, pop A...

Ưu: _ mật độ nguồn tốt ( đỉnh của ngăn xếp).

_ yêu cầu phần cứng thấp.

_ dễ viết bộ biên dịch .

Nhược: _ ngăn xếp trở thành nút cổ chai.

_ ít khả năng cho cơ chế song song và kĩ thuật đường ống.

_ dữ liệu luôn ở đỉnh của ngăn xếp khi cần, vì vậy mà cần bổ sung lệnh top, swap.

_ khó viết bộ biên dịch tối ưu cho cả kiến trúc.

c.KT bộ nhớ - bộ nhớ: bộ nhớ là nơi dùng để lưu trữ các loại dữ liệu.

Tập lệnh: _ 3 toán hạng: add A, B, C sub A, B, C mult A, B, C

_ 2 toán hạng: add A, B sub A, B

Ưu: _ yêu cầu ít lệnh ( 3 toán hạng)

_ dễ viết bộ biên dịch.

Nhược: _ lưu lượng bộ nhớ rất cao.

_ số lượng các xung CLK trên một lệnh thay đổi.

_ với 2 toán hạng yêu cầu dịch chuyển dữ liệu nhiều hơn.

d.KT thanh ghi - bộ nhớ:

Tập lệnh: add R1, A mult R¬1, A sub R1, A

Load R1, A store R1, A

Ưu: _ một số dữ liệu có thể truy mà không cần nạp trước.

_ khuôn dạng lệnh dễ mã hóa.

_ mật độ mã tốt.

Nhược: _ các toán hạng ko tương đương.

_ có thể giới hạn số lượng các thanh ghi.

e.KT nạp - lưu trữ:

Tập lệnh: add R1, R¬2, R3 sub R1, R2, R3 mul R1, R2, R3

Load R1, R3 store R1, R2, R3 move R1, R2, R3

Ưu: _ mã lệnh đơn giản, có độ dài cố định.

_ các lệnh được thực hiện trong số lượng chu kì CKL giống nhau.

_ dễ dàng trong kĩ thuật đường ống.

Nhược: _ tổng số lệnh cao hơn.

_ phụ thuộc vào độ biên dịch tốt.

f.KT thanh ghi:

Ưu: _ nhanh hơn bộ nhớ cache và bộ nhớ chính.

_ xác định, ko lỗi.

_ có thể tái tạo.

_ bộ nhận dạng ngắn, thường từ 3 8 bit.

_ lưu lượng bộ nhớ giảm.

Nhược: _ cần lưu lại và khôi phục cách gọi thủ tục và chuyển đổi ngữ cảnh.

_ ko thể lấy địa chỉ của thanh ghi, và số lượng thanh ghi hữu hạn.

_ kích thước cố định.

_ bộ biên dịch phải quản lí.

Bạn đang đọc truyện trên: Truyen2U.Pro

#ktmt