P. 1
BTL kiến trúc máy tính

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

|Views: 592|Likes:
Được xuất bản bởiKhoi Lieu

More info:

Published by: Khoi Lieu on Apr 26, 2012
Bản quyền:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

05/17/2013

pdf

text

original

Bài tập lớn môn học Kiến trúc máy tính

LỜI MỞ ĐẦU Ngày nay với tốc độ phát triển mạnh mẽ của điện tử và công nghệ thông tin, hàng loạt các sản phẩm công nghệ cao đã ra đời. Những sản phẩm này đã góp phần nâng cao đời sống con ngƣời và đẩy mạnh cuộc cách mạng công nghệ thông tin.Máy tính điện tử ra đời vào đầu thập kỷ thứ tƣ của thế kỷ 20 và phát triển nhanh chóng, làm nên một cuộc cách mạng trong lĩnh vực tính toán và xử lý thông tin, mở ra một kỷ nguyên mới trong lịch sử nhân loại - Kỷ nguyên máy tính điện tử.Với những công việc mà con ngƣời không thể làm đƣợc nhƣng chiếc máy tính lại xử lí một cách rất đơn giản và nhanh chóng.Có thể nói máy tính là những siêu công cụ,do con ngƣời chế tạo ra và để phục vụ cho chính cuộc sống của con ngƣời. Công nghệ tính toán cũng đã phát triển mạnh mẽ lên một tầm cao mới.Nó đƣợc sử dụng trong mọi ngành nghề mọi lĩnh vực và trở thành một phần không thể thiếu trong đời sống con ngƣời.Nhƣng dù phát triển mạnh mẽ tới mức nào đi nữa thì nó vẫn dựa trên những phép toán cơ bản trong quá trình xử lý,thực thi các công việc…Vì vậy nghiên cứu tính toán thì phải nghiên cứu từ những phép xử lý cơ bản này. Ở bài tập lớn này nhóm 05 sẽ trình bày về phƣơng pháp thiết kế một bộ nhân và bộ chia hai số 8bit đƣợc xây dựng bằng các cổng logic cơ bản nhƣ:AND,OR,XOR… Nội dung bài thảo luận bao gồm 03 phần chính: PHẦN 1: GIỚI THIỆU CHUNG VỀ KIẾN TRÚC MÁY TÍNH PHẦN 2:CƠ BẢN VỀ LÝ THUYẾT TÍNH TOÁN PHẦN 3: THIẾT KẾ BỘ NHÂN CHIA 8 BIT PHẦN 4:CHƢƠNG TRÌNH VÀ THỬ NGHIỆM

Nhóm 05

-1-

Lớp K44KMT

Bài tập lớn môn học Kiến trúc máy tính

PHẦN 1: GIỚI THIỆU CHUNG VỀ KIẾN TRÚC MÁY TÍNH 1.1 Khái niệm kiến trúc máy tính Kiến trúc máy tính là thiết kế khái niệm và cấu trúc hoạt động căn bản của một hệ thống máy tính.Nó là một bản thiết kế (blueprint) mô tả có tính chất chức năng về các yêu cầu (đặc biệt là tốc độ và các kết nối tƣơng hỗ) và những sự thi hành thiết kế cho những bộ phận khác nhau của một máy tính - tập trung chủ yếu vào việc CPU hoạt động nội tại nhƣ thế nào và truy cập các địa chỉ trong bộ nhớ bằng cách nào. Nó cũng có thể đƣợc định nghĩa nhƣ là khoa học và nghệ thuật lựa chọn và kết nối các thành phần phần cứng để tạo thành các máy tính đáp ứng đƣợc các mục đích về tính năng, hiệu suất và giá cả. 1.2 Phạm trù trong kiến trúc máy tính Kiến trúc máy tính bao gồm ít nhất ba phạm trù con chính: +) Kiến trúc tập lệnh (Instruction set architecture, ISA), là hình ảnh trừu tƣợng của một hệ thống tính toán đƣợc nhìn từ góc độ của một lập trình viên sử dụng ngôn ngữ máy (hay hợp ngữ), bao gồm tập lệnh, cách đánh địa chỉ bộ nhớ (memory address modes), các thanh ghi, và các định dạng địa chỉ và dữ liệu. +) Vi kiến trúc (Microarchitecture), còn gọi là Tổ chức máy tính (Computer organization) là một mô tả bậc thấp, cụ thể hơn về hệ thống. Mô tả này nói về các bộ phận cấu thành của hệ thống đƣợc kết nối với nhau nhƣ thế nào và chúng hoạt động tƣơng hỗ nhƣ thể nào để thực hiện kiến trúc tập lệnh. Ví dụ, kích thƣớc bộ đệm cache của một máy tính là một đặc điểm về tổ chức máy tính mà thƣờng không liên quan đến kiến trúc tập lệnh. +)Thiết kế hệ thống (System Design) bao gồm tất cả các thành phần phần cứng khác bên trong một hệ thống tính toán chẳng hạn nhƣ các đƣờng kết nối hệ thống bus (máy tính) và witch,các bộ điều khiển bộ nhớ (memory controller), các cây phả hệ bộ nhớ, các cơ chế CPU off-load nhƣ Direct memory access (truy nhập bộ nhớ trực tiếp),các vấn đề nhƣ đa xử lý (multi-processing)…

Nhóm 05

-2-

Lớp K44KMT

Bài tập lớn môn học Kiến trúc máy tính

PHẦN 2:CƠ BẢN VỀ LÝ THUYẾT TÍNH TOÁN 2.1: Cơ bản về lý thuyết tính toán 2.1.1 Các đối tƣợng trong xử lý tin học Là những phần tử thuộc vào những tập hợp vô hạn đếm đƣợc và luôn đƣợc biểu diễn dƣới một dạng nào đó.VD:số nguyên,số thập phân… 2.1.2 Chức năng của tính toán Một tính toán đƣợc biểu diễn một cách hệ thông nhƣ sau:
Dữ liệu vào Tính toán Dữ liệu ra

Cung cấp một hoặc nhiều dữ liệu ở đầu vào bộ tính toán thì ở đầu ra ta nhận đƣợc một hoặc nhiều dữ liệu tƣơng ứng. 2.1.3 Cấu trúc phép toán Thực hiện các phép toán sơ cấp (elementary operation) trong một khoảng thời gian hữu hạn.Mỗi phép toán,giả thiết không chia cắt nhỏ hơn đƣợc,đƣợc chọn trong một tập hợp hữu hạn các phép toán là một phần mô tả cấu trúc máy. Lần lƣợt thực hiện phép toán sơ cấp theo một thứ tự xác định trƣớc,tạo thành một chƣơng trình(program) là một phần mô tả cấu trúc này. Một dãy các phép toán sơ cấp đƣợc máy thực hiện liên tiếp đƣợc gọi là tính toán(computation) 2.1.4 Mô hình tính toán (T) Là sự mô tả tất cả các phép toán sơ cấp có thể đƣợc thực hiện trên những đối tựng nào đó,cách tác động lên mỗi một trong chúng nhƣ thế nào,và mô tả cách thức chƣơng trình đƣợc thực hiện(execution) trên máy. 2.2: Các phép toán thao tác 2.2.1: Các toán tử thao tác a, Phép AND Là một toán tử hai ngôi,có nhiệm vụ tính toán trên từng bit với hai chuỗi có cùng độ dài để tạo ra một chuỗi bit mới có cùng độ dài với hai chuỗi ban đầu.Trên mỗi cặp bit tƣơng ứng nhau của hai toán hạng,phép toán AND sẽ trả về 1 nếu hai toán hạng là 1,còn tất cả các trƣờng hợp khác AND sẽ tạo ra bit 0 VD :Thực hiện phép toán AND với hai số nhị phân 1001 và 1100 1001 AND 1100 = 1000
Nhóm 05 -3Lớp K44KMT

Dịch chuyển không nhớ Gồm có dịch trái và dịch phải.còn tất cả các trƣờng hợp khác OR sẽ tạo ra bit 0 VD :Thực hiện phép toán OR với hai số nhị phân 1001 và 1100 1001 OR 1100 = 1101 c.Trên mỗi cặp bit tƣơng ứng nhau của hai toán hạng.phép toán OR sẽ trả về 1 nếu một trong hai toán hạng là 1. Phép XOR Là một toán tử hai ngôi. Phép NOT Phép toán NOT còn đƣợc gọi là toán tử lấy phần bù(complement) là một toán tử một ngôi có nhiệm vụ phủ định luận lí từng bit của toán hạng nó.Bài tập lớn môn học Kiến trúc máy tính b.có nhiệm vụ tính toán trên từng bit với hai chuỗi có cùng độ dài để tạo ra một chuỗi bit mới có cùng độ dài với hai chuỗi ban đầu.khi dịch chuyển các bit vƣợt qua phạm vi lƣu trữ sẽ mất và tự động thêm bit 0 vào cuối dãy bit Dịch các bit sang trái n vị trí Các bit vƣợt quá phạm vi lƣu trữ sẽ mất Tự động thêm bit 0 vào cuối dãy bit X=3.phép toán XOR sẽ trả về 1 nếu chỉ một trong hai toán hạng là 1.2 Dịch chuyển và quay bit a. Phép OR Là một toán tử hai ngôi.2.còn tất cả các trƣờng hợp khác XOR sẽ tạo ra bit 0 VD :Thực hiện phép toán XOR với hai số nhị phân 1001 và 1100 1001 XOR 1100 = 0101 d.n=2 00001100 Với dịch phải tƣơng tự Chú ý:ta giữ lại bit đầu tiên làm bit dấu của số Nhóm 05 -4Lớp K44KMT .Tuy nhiên trên mỗi cặp bit tƣơng ứng nhau của hai toán hạng.có nhiệm vụ tính toán trên từng bit với hai chuỗi có cùng độ dài để tạo ra một chuỗi bit mới có cùng độ dài với hai chuỗi ban đầu.Tức là đảo 1 thành 0 và 0 thành 1 VD :Thực hiện phép toán XOR với hai số nhị phân 1001 NOT 1001 = 0110 2.

tƣơng tự nhƣ phép cộng số thập phân) Bây giờ ta tiến hành cộng hai số nhị phân 1000111(số 71 trong hệ thập phân)và số 11110(số 30 trong hệ thập phân) Cột 71= 30= + 101= 1 1 0 0 1 0 1 1 1 2 0 3 0 1 4 0 1 5 1 1 6 1 1 7 1 0 Ta tiến hành cộng từ phải qua trái nhƣ sau: Bƣớc 1 2 3 4 Nhóm 05 Tại cột 7 6 5 4 Thực hiện phép tính 1+0=1 1+1=10(viết 0.viết 0 nhớ 1 -5Lớp K44KMT .cộng thêm 1(nhớ ở bƣớc 3)là 10.Bài tập lớn môn học Kiến trúc máy tính b. Dịch các bit sang trái n vị trí Các bit vƣợt quá phạm vi lƣu trữ sẽ mất Tự động thêm bit nhớ vào cuối dãy bit X=3.Dịch chuyển có nhớ Gồm dịch chuyển trái và dịch chuyển phải.3 Các phép tính trên hệ nhị phân 2.các bit vƣợt qua phạm vi lƣu trữ sẽ biến mất.1 Phép cộng Để cộng hai số nhị phân.n=2 00001111 Dịch phải tƣơng tự trên Chú ý:ta giữ bit đầu tiên làm bit dấu 2.nhớ 1) 1+1=10. viết 1 nhớ 1 0+1=1.3.chúng ta cần phải nhớ các nguyên tắc sau: 0+0=0 0+1=1 1+0=1 1+1=10 (Nhớ 1 để cộng vào hàng trƣớc đó.cộng thêm 1(nhớ ở bƣớc 2)là 11.khi dịch chuyển sẽ có một bit gọi là bit nhớ.bit nhớ sẽ tự động thêm vào cuối dãy bit .

3. Ví dụ:Số 28 trong hệ nhị phân(với mẫu 8bit)là:00011100. Nhóm 05 -6- Lớp K44KMT .nếu bit dấu là số 1 thì số là số âm.cộng với -1 nhớ ở bƣớc 4 là -1.Số bù 1 thƣơng đƣợc dùng để biểu diễn số âm trong máy tính.ta cần nhớ các nguyên tắc sau: 0-0=0 0-1=-1(mƣợn) 1-0=1 1-1=0 -1-1=-10 Thực hiên phép trừ 51-28=23 Cột 51= 28= 23= 0 1 0 1 1 1 6 1 0 5 1 1 4 0 1 3 0 1 2 1 0 1 1 0 Ta tiến hành trừ từ phải sang trái nhƣ sau Bƣớc 1 2 3 4 5 6 Tại cột 1 2 3 4 5 6 Thực hiện phép tính 1-0=1 1-0=1 0-1=-1(Viết 1 và nhớ -1) 0-1=-1.Vậy số bù 1 sẽ là 11100011.cộng thêm 1 (nhớ ở bƣớc 4)là 10 viết 0 nhớ 1 0+1(nhớ ở bƣớc 5)=1 Lấy 1 ở trên xuống Và kết quả chúng ta đƣợc là:1000111+11110=1100101(71+30=101) 2.cộng thêm -1 nhớ ở bƣớc 3 là -10 viết 0 nhớ -1 1-1=0.Bài tập lớn môn học Kiến trúc máy tính 5 6 7 3 2 1 0+1=1.bit cực trái(bit đầu tiên ở bên trái)là bit đánh dấu với quy ƣớc:Nếu bit dấu là 0 thì số là số dƣơng.2 Phép trừ Để trừ hai số nhị phân.ta có số bù 1 của số nhị phân đó.Khi đó.viết 1 nhớ -1 1+-1(nhớ ở bƣớc 5)=0 Vậy 110011-11100=010111(tƣơng ứng với 51-28=23) Số bù 1 :Khi ta đảo tất cả các bit có trong số nhị phân(đổi 1 thành 0 và ngƣợc lại).

số bù 2 của 5 là:1111 1011 Vậy 2-5=0000 0010 + 1111 1011 Cột 2= -5= + -3= 1 1 1 1 1 1 0 1 8 0 1 7 0 1 6 0 1 5 0 1 4 0 1 3 0 0 2 1 1 1 0 1 Ta thực hiện phếp trừ theo các bƣớc sau: Bƣớc 1 2 3 4 5 6 7 8 Tại cột 1 2 3 4 5 6 7 8 Thực hiện phép tính 0+1=1 1+1=10.Với mỗi con số ở B.Hay nói cách khác số bù 2 là số bù 1 công thêm 1.số bù 2 cũng đƣợc dùng để biểu diễn số âm.Khi đó bit cực trái(bit đầu tiên ở bên trái) là bit đánh dấu với quy ƣớc:Nếu bit dấu là 0 thì số là số dƣơng.là số bù 2 của -3 2.số bù 1 của 5 là 1111 1010 Vậy 2-5=0000 0010+1111 1010=1111 1100 Số bù 2 :Số bù 2 có đƣợc là do đảo tất cả các bit có trong số nhị phân(đổi 1 thành 0 và 0 thành 1)rồi cộng thêm 1 vào kết quả.ta có thể thực hiện phép cộng với số bù 1 của số nhị phân đó.510=0000 01012. Ví dụ:Thực hiên phép trừ 2-5=-3 Ta có 210=0000 00102.nếu bit dấu là 1 thì là số âm.Bài tập lớn môn học Kiến trúc máy tính Để thực hiện phép trừ với số nhị phân. Ví dụ thực hiên phép trừ 2-5=-3 Ta có 210=0000 00102 510=0000 01012.cộng thêm 1 nhớ ở bƣớc 2 vào là 1 0+1=1 0+1=1 0+1=1 0+1=1 0+1=1 Ta đƣợc kết quả 1111 1101.3 Phép nhân Phép tính nhân trong hệ nhị phân cũng tƣơng tự nhƣ phƣơng pháp làm trong hệ thập phân.3.tích của nó với 1 số trong A đƣợc tính và viết xuống một hàng Nhóm 05 -7Lớp K44KMT .Hai số A và B đƣợc nhân với nhau bởi tích số các kí số 0 và 1 của A và B.viết 0 nhớ 1 0+0=0.Số bù 1 của 5 là 1111 1010.

bằng 1 nên kết quả là số nhân 1010.4 Phép chia Phép chia nhị phân đƣợc thực hiện nhƣ chia thập phân.3.xét tiếp bit thứ 2. Ví dụ:9x6=54 (1001x110=110110) Ta thực hiện phép nhân nhƣ sau: 1 0 1 0 (số nhân) X 1 1 0 (số bị nhân) +0 0 0 0 + 1010 + 1010 =1 1 1 1 0 0 Xét bit dầu tiên của số bị nhân.Tổng của các tích cục bộ này cho ta kết quả tích số cuối cùng.ta đƣợc kết quả đầu tiên 0000.Bài tập lớn môn học Kiến trúc máy tính mới.tiếp bit thứ 3 của số bị nhân bằng 1 nên kết quả nhận đƣợc là 1010 dịch trái tiếp kết quả sang 1 bit so với kết quả thứ 2.bit đầu tiên của số bị nhân bằng 0.mỗi hàng mới phải dịch chuyển vị trí sang bên trái 1 bit.nếu băng 1 thì ta đƣợc kết quả là số nhân để thực hiện phép cộng. Nhóm 05 -8- Lớp K44KMT . Ở phép tính trên.Cộng 3 kết quả vừa nhận đƣợc lại ta sẽ thu đƣợc kết quả của phép nhân 2.Dịch trái bit thứ 2 sang 1 bit.Nếu bằng 0 thì ta đƣợc kết quả là 0 để thực hiện phép cộng.

3.2 Mạch cộng nửa Đây là mạch cộng nửa hay cộng chƣa đủ (haft adder : HA) vì chƣa có số nhớ ban đầu của phép cộng trƣớc đó. xét mạch cộng nhị phân 1 bit Với tổ hợp 4 trạng thái logic của A và B thì trạng thái logic ngõ ra S và C nhƣ sau Hình .1 Thiết kế bộ cộng 3. còn C là ngõ ra của cổng AND Từ đây vẽ đƣợc cấu trúc logic của mạch Hình 3.1.Bài tập lớn môn học Kiến trúc máy tính PHẦN 3 : THIẾT KẾ BỘ NHÂN CHIA 8 BIT 3. Nhóm 05 -9Lớp K44KMT .1 Cộng nửa Rút gọn biểu thức logic ta có: S=AB+AB C=AB Nhận thấy S là ngõ ra của cổng EXOR 2 ngõ vào A và B.1 Mạch cộng nửa Gọi A là số đƣợc cộng B là số cộng S là tổng của A và B C là số nhớ ra từ phép cộng Trƣớc hết để đơn giản.

nếu tiếp tục cộng lần 2 khi trạng thái logic của A và B thay đổi thì S không chỉ là tổng của A và B mà gồm cả C0 trƣớc đó. Cả 2 mạch HA và FA ở trên mới chỉ làm phép cộng 1 bit 3.1.1. Khi này ta có mạch cộng đủ: full adder (FA) Hình 3.2 Mạch cộng đủ Bây giờ giả sử mạch đã thực hiện phép cộng lần đầu rồi nên đƣợc tổng là S0 và số nhớ C0.3 cộng nhiều bit a Cộng song song Bây giờ nếu 2 số cộng có nhiều bit hơn thì cách cộng cũng sẽ tƣơng tự : trƣớc hết cộng 2 bit LSB để cho bit tổng (LSB). số nhớ khi này trở thành bit LSB của tổng Nhóm 05 .3 Cộng đủ Rút gọn biểu thức ta đƣợc S=(AB+AB)Ci+(AB+AB)Ci C=AB+(AB+AB)Ci Cấu trúc của mạch logic sẽ là : Hình 3.4 Mạch cộng đủ Nhận thấy rằng : FA thực ra bao gồm trong nó 2 HA và cổng OR ở ngõ ra cho số nhớ C. Số nhớ đƣợc đƣa tới để cộng chung với 2 bit kế tiếp bit LSB để cho bit tổng ở hàng kế tiếp cho đến phép cộng cuối cùng giữa 2 bit MSB để đƣợc bit tổng ở hàng đó.10 Lớp K44KMT .Bài tập lớn môn học Kiến trúc máy tính 3.

Mạch ghi dịch ngõ ra dịch chuyển sang phải qua mỗi lần cộng sẽ cho ra kết quả cộng số nhớ cuối cùng trở thành bit MSB của tổng ra.11 - Lớp K44KMT . Khi này 2 bit LSB của các số đƣợc cộng trƣớc.3. Tức là đã có trì hoãn làm giảm tính đồng bộ của mạch.Bài tập lớn môn học Kiến trúc máy tính Hình sau sẽ minh hoạ rõ ràng hơn mạch cộng nhiều bit (4 bit) Hình . b Cộng nối tiếp Ngoài cách cộng song song nhƣ đã thấy ở trên. Với công nghệ tích hợp cao. Rõ ràng mạch thực hiện phép tính chậm hơn so với cộng song song. còn một dạng mạch cộng số nhiều bit nữa gọi là mạch cộng nối tiếp. bit LSB của tầng đƣợc đƣa ra 1 ghi dịch còn số nhớ sẽ quay trở về cộng chung với 2 bit kế tiếp bit LSB và cứ vậy cho đến 2 bit cuối cùng đƣợc cộng. Nếu thêm vào mạch cho phép cung cấp sẵn các bit nhớ để phục vụ cho các phép cộng ở các hàng đƣợc cùng lúc thì sẽ khắc phục đƣợc điểm này. nó cũng cần 1 xung nhịp để giữ cho các mạch làm việc động bộ Hình.3.5 Cộng 4 bit Đây là một mạch cộng song song vì các hàng đƣợc cộng cùng một lúc tuy nhiên nhƣ cấu trúc mạch ở trên thì các bit ra của tổng không phải là đồng thời bởi vì các phép cộng ở các bit cao thì chậm hơn do phải chờ bit nhớ ở phép cộng trƣớc đƣa tới.6 Mạch cộng 4 bit nối tiếp Nhóm 05 . việc thêm mạch cung cấp sẵn các bit nhớ trở nên dễ dàng hơn khi đó mạch trở thành mạch cộng có số nhớ nhìn trƣớc.

8 là mạch trừ FS cùng bảng trạng thái hoạt động ở bên cạnh hình . còn khi thực hiện mạch thì đó là cổng đảo Hình .3.Bài tập lớn môn học Kiến trúc máy tính 3.7 Mạch trừ nửa.12 - Lớp K44KMT . Mạch trừ FS cũng gồm 2 mạch trừ HS và cổng OR ở ngõ ra cho số mƣợn B0 Hình .3.1 Trừ nửa và trừ đủ Cũng gồm 2 loại mạch trừ nửa hay chƣa đủ : haft subtractor (HS) và trừ đủ hay còn gọi là trừ bán phần : full subtractor (FS) (khi này cần bit mƣợn Bi trƣớc tham gia vào phép tính).7 là mạch trừ HS và bên cạnh là bảng trạng thái Hình .3.Phép trừ thực ra là phép cộng với số âm.8 Mạch trừ đủ Về cấu trúc mạch trừ cũng tƣơng tự mạch cộng chỉ khác là số bị trừ B cần phải qua cổng đảo khi thực hiện AND với số trừ A để cho số mƣợn R.3. bảng trạng thái và mạch logic Còn hình .2 Thiết kế bộ trừ nửa và trừ đủ 3. Để có số âm của 1 số ta lấy bù 1 của số đó.2.9 Mạch trừ hết Nhóm 05 .3.

10b Trừ 4 bit nối tiếp Hình . các cổng EXOR có 1 ngõ ở thấp nên cho số B qua không bị đảo.3 Mạch cộng trừ kết hợp Bây giờ nếu thêm vào một số cổng logic cần thiết ta đã có 1 mạch có thể cộng hay trừ tuỳ theo ngõ vào điều khiển CT Khi CT = 0.3. số nhớ của tầng cuối cần đem về bit nhớ ban đầu của tầng đầu. khi này mạch thực hiện phép cộng A + (-B) tức là phép trừ. tức là mạch thực hiện phép cộng Khi CT = 1.10a Mạch trừ 4 bit song song 3. Hình minh hoạ cho mạch trừ nhị phân 4 bit Hình .Bài tập lớn môn học Kiến trúc máy tính 3.11 Mạch cộng trừ dùng bù 1 Nhóm 05 .13 - Lớp K44KMT . Co3 là bit LSB của tổng đƣợc vòng trở lại (qua cổng AND) về Ci0. số B bị đảo.2. sẽ cho phép cộng nhiều bit. cũng có thể thực hiện song song các mạch cộng FS từng bit nhƣng các bit của số bị trừ cần đƣợc đảo. các cổng EXOR có 1 ngõ ở cao nên hoạt động nhƣ 1 cổng NOT.3.2 Mạch trừ nhiều bit Với mạch trừ nhị phân nhiều bit.3. Hình .

3.Bài tập lớn môn học Kiến trúc máy tính Ngoài cách dùng bù 1.4 Cộng trừ hai số BCD 3. Ví dụ nhƣ cộng 2 số BCD sau: Hình .3. Khi đó mạch cộng trừ nhị phân 4 bit dùng bù 2 sẽ nhƣ sau : Hình . Để ý là mạch khá giống nhƣ nó ở cách dùng bù 1 nhƣng bit nhớ ra cuối cùng không cần đem về tầng đầu. Tuy nhiên khi tổng vƣợt quá 1001 thì tức là tổng đó không còn là số BCD nữa. Hình 2. do đó ta phải cộng tổng với 0110 (số 610) để cho tổng mới là số BCD đồng thời số nhớ chính là hàng cao hơn của tổng. ta cũng có thể dùng bù 2 (lấy bù 1 rồi cộng thêm 1) để thực hiện phép toán trừ nhị phân kể cả số có dấu.1 Cộng 2 số BCD Số BCD thực ra cũng là số nhị phân n bit nhƣng chỉ có 10 tổ hợp trạng thái từ 0000 đến 1001 (biểu thị số thập phân tƣơng ứng là từ 0 đến 9) nên cách cộng cũng tƣơng tự nhƣ cổng số nhị phân nhiều bit.3.14 Lớp K44KMT .22 là mạch cộng trừ 2 số 4 bit dùng bù 2. muốn lấy đúng kết quả thì phải chuyển trở lại.13 Mạch cộng 2 số BCD 1 bit Nhóm 05 .4. Tổng hay hiệu ra ở dạng bù 2.12 Mạch cộng trừ dùng bù 2 3. Cách này đƣợc sử dụng phổ biến ở VXL và máy tính.

14 Mạch trừ 2 số BCD 1 bit 3.3.nếu số bị nhân bằng 0 thì thực hiện phép cộng đối Nhóm 05 .2 Trừ 2 số BCD Với phép trừ BCD.5 Mạch nhân 3. Nếu tổng không vƣợt quá 9 (vẫn là số BCD) thì tổng hàng chục không có nên 74LS83 thứ 2 sẽ cộng tổng này với 0. Ta có thể ghép nhiều mạch cộng ở trên để có mạch cộng 2 số BCD nhiều bit. ta phải lấy bù 9 của số trừ rồi mới làm phép cộng lại với số bị trừ. Ở chƣơng 1 có nói rõ hơn về phép trừ BCD Ví dụ về phép trừ BCD : 9 – 5 và 2–6 Hình. Nếu tổng đầu vƣợt quá 9 ( từ 10 đến 18) thì các cổng logic sẽ cho phép xác định hàng chục đồng thời tổng này phải đƣợc cộng thêm 6 ở tầng 74LS83 thứ 2 để cho tổng cuối cùng ở dạng BCD.15 Lớp K44KMT .5.nếu số bị nhân bằng 1 thì ta thực hiện phép cộng với số nhân. khi đó chỉ việc nối ngõ ra hàng chục của tầng đầu tới ngõ vào số nhớ Ci của tầng sau là đƣợc. Lấy bù 9 của 1 số tức là lấy 9 trừ đi số đó.Bài tập lớn môn học Kiến trúc máy tính 2 số cần cộng là A3A2A1A0 và B3B2B1B0 cho tổng là C3S4S3S2S1 (C3 là hàng chục nếu có).4. 3.1 Nguyên tắc thiết kế Nguyên tắc của phép nhân số nhị phân là thức hiện phép so sánh một phần của số bị nhân (bit đầu tiên của số bị nhân với số nhân)với số nhân. tổng ra không có gì thay đổi.

Công việc đƣợc lặp lại cho đến khi chấm dứt. H3.15: Sơ đồ huật toán nhân H3.Sau đó tiếp tục dịch trái phần còn lại của số bị nhân một bit(hoặc dịch phải số nhân một bit)rồi tiếp tục thực hiện phép so sánh nhƣ trên.16 - Lớp K44KMT .Bài tập lớn môn học Kiến trúc máy tính với số 0.16: Sơ đồ phép nhân Nhóm 05 .Với kết quả của phép so sánh thứ 2 sẽ dịch trái một bit so với kết quả của phép so sánh đầu tiên. Với phép nhân có dấu ta có thể sử dụng giải thuật Booth hoặc là sử dụng thuật toán nhân không dấu và sử dụng bộ hiệu chỉnh dấu để hiệu chỉnh. Phép nhân có 2 thừa số đƣợc lƣu trong 8 bít và kết quả đƣợc lƣu trong 16 bit nên không bao giờ bị tràn bộ nhớ .

17: Giải thuật Booth 3.Bài tập lớn môn học Kiến trúc máy tính H3.5.Tính tổng của các tích từng phần: Áp dụng bài toán tổng chuỗi số(Hình ) Nhóm 05 .17 - Lớp K44KMT .2 Mạch nhân cơ bản Việc thực hiện bài toán nhân có thể xem nhƣ gồm hai bƣớc: -Tính các tích từng phần: thực hiện bởi các cổng AND .

18 Sơ đồ mạch nhân 3. FA ... S4 S3 S2 S1 Hình 3.Bài tập lớn môn học Kiến trúc máy tính Y8 Y7 Y6 Y5 Y4 Y3 Y2 Y1 X8 X7 X6 X5 X4 X3 X2 X1 .18 - Lớp K44KMT .19Mạch nhân nối tiếp-song song đơn giản Trong mạch này. . ứng với bit 0 ngã ra cổng AND bằng không (cổng 1 và 3) Nhóm 05 . FA FA FA FA FA FA FA FA FA FA FA FA FA FA FA FA P77 FA FA FA FA FA FA FA FA FA FA FA FA FA FA FA FA FA FA FA FA FA S1 S1 S12 S11 S10 S9 S8 S7 S6 S5 . .3 Mạch nhân nối tiếp-song song đơn giản Hình 3. FA .5. . P27 . . FA . P18 FA . . .Số nhân (b4b3b2b1) đƣa song song vào mạch qua các cổng AND đồng thời kiểm soát các cổng này: ứng với bit 1 số bị nhân qua mạch để tới mạch cộng (cổng 2 và 4). FA . một trong hai số đƣợc đƣa nối tiếp vào mạch (trong trƣờng hợp này là số bị nhân) và số còn lại đƣa song song vào mạch.

20 cộng số ngã ra 3 và ngã ra 4 bị trễ 1 bit Nhóm 05 . ngƣời ta dùng mạch (H 3.20) H 3. Quá trình nhân giải thích nhƣ sau: P8 A B C D Output 0 0 0 0 1 P7 0 0 0 1 0 P6 0 0 0 1 0 P5 0 1 0 1 0 P4 0 1 0 0 1 P3 0 1 0 0 1 P2 0 0 0 0 0 P1 0 0 0 0 0 100011002=14010 Có thể thấy rằng ngã ra A luôn luôn bằng 0 vì bit LSB của số nhân = 0. Điều này có thể so sánh với bài toán trên giấy Số bị nhân 1110 Số nhân 1010 A 0000 B + 11100 C + 000000 D + 1110000 Tích 10001100 Muốn không sử dụng mạch cộng số nhiều bit. Ngã ra D giống nhƣ B nhƣng trễ 3 bit. Ngã ra C đƣợc làm trễ 2 bit và luôn bằng 0 (Giống nhƣ A).Bài tập lớn môn học Kiến trúc máy tính - Số bị nhân đƣa nối tiếp vào mạch theo thứ tự từ bit LSB. Các FF D có tác dụng dịch kết quả của phép nhân (là các tích từng phần) trƣớc khi đƣa vào mạch cộng để cộng các tích từng phần này. Thí dụ 15 : Xem bài toán nhân 10x14.19 - Lớp K44KMT . Số nhân là 1010 (1010) và số bị nhân là 1110 (1410). Ngã ra B có giá trị của số bị nhân đƣợc làm trễ 1 bit (1 xung đồng hồ).

Các cổng AND cho phép các bit của số bị nhân đi qua khi số nhân là 1.22) là một mạch thực tế dùng ghi dịch 4 bit có ngã vào/ra song song. một mạch cộng 4 bit và một chip 4 cổng AND 2 ngã vào để thực hiện bài toán nhân.20) cần (n-1) mạch cộng và mạch trễ (FF D) cho số nhân n bit. Ngã ra cổng 3 luôn luôn bằng 0.20) kết quả cho ở ngã ra mạch cộng C với bit LSB ra đầu tiên. tuy nhiên mạch này chƣa quan tâm tới số nhớ. số bị nhân (với số bit bất kỳ) đƣợc cho vào mạch nối tiếp với bit LSB vào đầu tiên.Bài tập lớn môn học Kiến trúc máy tính Mạch (H 3.20 - Lớp K44KMT . Mạch (H 3. H3. Ngã ra cổng 4 sau 4 xung Clock là 1110.21) cho kết quả với số nhớ Và (H 3. Mạch cộng A cộng số ngã ra 3 và ngã ra 4 bị trễ 1 bit: 0000 + 11100 11100 Tƣơng tự mạch cộng B cộng số bị nhân với kết quả ở A đƣợc làm trễ 1 bit: 1110 +111000 1000110 Và mạch cộng C 0000 + 10001100 10001100 Lƣu ý là ở mạch (H 3. Nhóm 05 .21) cho kết quả với số nhớ .

Nhóm 05 .6 Mạch chia Nguyên tắc của phép chia số nhị phân là thực hiện phép so sánh một phần của số bị chia (số bit đầu tiên bằng với số bit của số chia) với số chia. sau đó dịch trái phần còn lại của số bị chia một bit (hoặc dịch phải số chia 1 bit) rồi tiếp tục thực hiện bài toán so sánh giống nhƣ trên. 3.6.21 Lớp K44KMT . Công việc đƣợc lặp lại cho đến khi chấm dứt.Bài tập lớn môn học Kiến trúc máy tính H3.1 Phép chia có phục hồi số bị chia Thay vì phải thực hiện việc so sánh. thực hiện phép trừ.23 giải thuật thực hiện bài toán chia 3. ngƣợc lại thì thƣơng số =0. nếu kết quả dƣơng.22 mạch thực tế dùng ghi dịch 4 bit có ngã vào/ra song song Từ các mạch nhân hai số 4bit trên ta xây dựng đƣợc mạch nhân 8bit bằng cách ghép 2 mạch nhân 4bit lại với nhau. nếu số bị chia lớn hơn số chia thì thƣơng số =1. thƣơng số là 0. thƣơng số là 1.23) tóm tắt giải thuật thực hiện bài toán chia H 3. Sơ đồ (H 3. nếu kết quả âm. ngƣời ta làm phép tính trừ một phần số bị chia cho số chia.

Cộng số bị chia với số chia.24 giải thuật thực hiện phép chia có phục hồi số bị chia Để thực hiện phép chia theo sơ đồ trên. số chia .Trừ số bị chia cho 1/2 số chia (trừ bị chia cho số chia đã dịch phải) Hai bƣớc này có thể gộp lại thành một bƣớc duy nhất nhƣ sau: Cộng số bị chia với số chia đã dịch phải. .6. số thƣơng ngƣời ta phải dùng thanh ghi chứa số bị chia đƣợc phục hồi.Bài tập lớn môn học Kiến trúc máy tính trong trƣờng hợp này phải phục hồi lại số bị chia bằng cách cộng số bị chia cho số chia trƣớc khi dịch số bị chia sang trái 1 bit (hoặc số chia sang phải) để tiếp tục lặp lại bài toán cho đến khi kết thúc.24) bởi sơ đồ giải thuật thực hiện phép chia không cần phục hồi số bị chia (H 3. ngoài các thanh ghi để chứa các số bị chia. Từ các kết quả nhận xét trên có thể thay sơ đồ (H 3. lệnh kế tiếp thực hiện là trừ số chia đã dịch phải.24) là sơ đồ giải thuật thực hiện phép chia có phục hồi số bị chia.25) Nhóm 05 .2 Phép chia không phục hồi số bị chia Hệ thống sẽ đơn giản hơn nếu chúng ta dùng phép chia không cần phục hồi số bị chia theo nguyên tắc nhƣ dƣới đây.22 Lớp K44KMT . Quan sát giản đồ (H 3. (H 3. + Số chia nhỏ hơn số bị chia (nhánh bên trái) Sau khi lấy kết quả =1. H3. 3.24) ta thấy có 2 trƣờng hợp: + Số chia lớn hơn số bị chia (nhánh bên phải) Lƣu ý là dịch số chia về bên phải 1 bit tƣơng đƣơng với chia số đó cho 2 Nhánh bên phải của sơ đồ trên gồm 2 bài toán: .

SC < 0). dịch phải số chia 1 bit.SC > 0).Số chia nhỏ hơn số bị chia (SBC . dịch phải số chia 1 bit (thực tế ta mang thêm 1 bit của số bị chia xuống). Thí dụ 1: Thực hiện bài toán chia 2110 = 0101012 cho 710 = 01112. số bị chia gồm 6 bit và số chia gồm 4 bit. thƣơng số là 0. thực hiện bài toán trừ (cộng số bù 2) số bị chia cho số chia Để đơn giản.25 giải thuật thực hiện phép chia không cần phục hồi số bị chia Dựa vào sơ đồ (H 6. thực hiện bài toán cộng số chia và số bị chia . giả sử số chia và bị chia đều dƣơng (MSB = 0).23 - Lớp K44KMT . Số bù 2 của 0111 là (0111)2 = 1001 Ghi chú: Nhóm 05 . các bƣớc thực hiện bài toán chia nhƣ sau: . thƣơng số là 1.Số chia (SC) lớn hơn số bị chia (SBC) (SBC .Bài tập lớn môn học Kiến trúc máy tính H3.25).

Kết quả: thƣơng là 011(=3) và số dƣ là 0000(=0) Bài toán trên cho kết quả với 3 bƣớc cộng/trừ. Một cách tổng quát số bƣớc của bài toán bằng với số bít của số bị chia.Bài tập lớn môn học Kiến trúc máy tính (1) Số 1 trên mũi tên chỉ rằng kết quả phép toán trừ là số âm. Tuy nhiên nếu ta chia 21 cho 1 thì cần tới 6 bƣớc cộng trừ để có thƣơng số 6 bit. Ta có thể làm lại bài toán với 6 bƣớc cộng/trừ ((thêm 3 bit 0 cho số bị chia) Thí dụ 2 và 3 dƣới đây là bài toán 6 bƣớc Thí dụ 2 : Chia 21 cho 6 đƣợc kết quả 3 và số dƣ là 3 Nhóm 05 . bƣớc kế tiếp là dời và cộng số chia (2) Số 0 trên mủi tên chỉ rằng kết quả phép toán trừ là số dƣơng.24 - Lớp K44KMT . bƣớc kế tiếp là dời và trừ số chia (cộng số bù 2) Thƣơng số có đƣợc từ các số tràn mà trên phép tính ta ghi trong vòng tròn.

25 - Lớp K44KMT . đƣợc kết quả 4 và số dƣ là 1. (1) Cộng số chia vào để điều chỉnh số dƣ Mạch thực hiện các bài toán này cho ở (H 6. Tuy nhiên trên phép toán ta thấy phép cộng với số chia cuối cùng cho kết quả âm (số 1100) nên để điều chỉnh số dƣ ta phải cộng số chia vào và bỏ qua số tràn. Nếu kết quả của bài toán ở bƣớc 6 có S4 = 1 thì cổng AND mở để thực hiện bài toán cộng với số chia để điều chỉnh số dƣ. Sau bƣớc thứ nhất.26) bƣớc đầu tiên đƣợc thực hiện bởi các cổng EX-OR trên cùng có ngã điều khiển = 1 để thực hiện bài toán trừ. Trong (H 6. Nhóm 05 . Số nhớ của bài toán cuối cùng (bƣớc 6) là bit LSB của thƣơng số. bit thứ tƣ của mạch cộng (S4) sẽ quyết định phép toán sau đó là cộng (S4=1) hay trừ (S4=0) số bị chia với số chia.26). Và mạch cộng cuối cùng đƣợc thiết kế kết hợp với các cổng AND để xử lý kết quả của số dƣ nhƣ trong hai thí dụ 2 và 3.Bài tập lớn môn học Kiến trúc máy tính Thí dụ 3 : Chia 21 cho 5.

26 - Lớp K44KMT .Bài tập lớn môn học Kiến trúc máy tính SO BI CHIA 0 0 0 0 0 0 0 D8 D7 D6 D5 D4 D3 D2 D1 SO CHIA D1D2D3 D5 D7 D4 D6 D8 1 XOR C8 FA S8 S7 FA S6 FA S5 FA S4 FA S3 FA S2 FA S1 FA C0 C8 C8 C8 C8 C8 C8 C8 O8 O7 O6 05 O4 O3 O2 O1 R8 R7 R6 R5 R4 R3 R2 R1 h3.26 Sơ đồ mạch chia Nhóm 05 .

CHƢƠNG TRÌNH VÀ THỬ NGHIỆM 4.3.Giao diện chƣơng trình đƣợc thiết kế bằng QuartusII 4.Bài tập lớn môn học Kiến trúc máy tính CHƢƠNG 4.1.2: Mô phỏng phép cộng đủ FA 4.1 Phép nhân hai số 1bit Nhóm 05 .2.2 Phép cộng đủ FA Hình 4.3 Phép nhân a)Phép nhân 1bit Hình 4.27 Lớp K44KMT .2.1 Sơ đồ mô phỏng phép cộng đủ FA Hình 4. Giới thiệu chương trình .

Bài tập lớn môn học Kiến trúc máy tính b)Phép nhân 8bit Hình 4.28 - Lớp K44KMT .3.4.1 Phép chia 1bit b)Mô phỏng phép chia 8bit Nhóm 05 .2 Phép nhân hai số 8bit 4.4 Phép chia a)Phép chia 1bit Hình 4.

29 - Lớp K44KMT .Bài tập lớn môn học Kiến trúc máy tính Hình 4.4.2 Phép chia hai số 8 bit Nhóm 05 .

chia sẽ ngày càng giúp ích nhiều hơn cho con ngƣời.hiểu hơn về công việc tính toán của chiếc máy tính mỗi khi nhận lệnh bên ngoài từ con ngƣời.chƣa hiểu rõ.Nhƣng do mới tìm hiểu và nghiên cứu.Bài tập lớn môn học Kiến trúc máy tính KẾT LUẬN Với sự phát triển rất nhanh chóng của công nghệ thông tin công việc tính toán ngày càng trở nên dễ dàng hơn với những phần mềm tiện ích dễ sử dụng. Nhóm 05 .các phép toán cũng ngày càng phổ biến hơn với con ngƣời bởi vì nó là ngôn ngữ chính để có thể giao tiếp giữa con ngƣời và máy tính.30 - Lớp K44KMT .sâu sắc nên bài còn nhiều thiếu sót.Qua bài cũng giúp em hiểu biết hơn về phần mềm mô phỏng toán học QuartusII và một số hiệu ứng Flash rất có ích trong công việc tính toán.Vì vậy các phép toán số học nhƣ cộng.nhân.trừ. Qua bài tập lớn này đã giúp em hiểu sâu hơn về các phép toán số học.Mong các thày cô bỏ qua những sai sót cho chúng em.

You're Reading a Free Preview

Tải về
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->