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

2 Dịch chuyển và quay bit a. Phép XOR 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. 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ó.2.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.phép toán OR sẽ trả về 1 nếu một trong hai toán hạng là 1.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.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.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 . Phép OR Là một toán tử hai ngôi.Bài tập lớn môn học Kiến trúc máy tính b.Tuy nhiên trên mỗi cặp bit tƣơng ứng nhau của hai toán hạng.Trên mỗi cặp bit tƣơng ứng nhau của hai toán hạng.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.phép toán XOR sẽ trả về 1 nếu chỉ một trong hai toán hạng là 1. Dịch chuyển không nhớ Gồm có dịch trái và dịch phải.

cộng thêm 1(nhớ ở bƣớc 2)là 11. 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.Bài tập lớn môn học Kiến trúc máy tính b.viết 0 nhớ 1 -5Lớp K44KMT .nhớ 1) 1+1=10.1 Phép cộng Để cộng hai số nhị phân.bit nhớ sẽ tự động thêm vào cuối dãy bit .cộng thêm 1(nhớ ở bƣớc 3)là 10.3 Các phép tính trên hệ nhị phân 2.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ác bit vƣợt qua phạm vi lƣu trữ sẽ biến mất. viết 1 nhớ 1 0+1=1.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.3.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.khi dịch chuyển sẽ có một bit gọi là bit nhớ.Dịch chuyển có nhớ Gồm dịch chuyển trái và dịch chuyển phải.

Nhóm 05 -6- Lớp K44KMT .Vậy số bù 1 sẽ là 11100011.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.cộng thêm -1 nhớ ở bƣớc 3 là -10 viết 0 nhớ -1 1-1=0.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.3.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.Khi đó.Số bù 1 thƣơng đƣợc dùng để biểu diễn số âm trong máy tính. Ví dụ:Số 28 trong hệ nhị phân(với mẫu 8bit)là:00011100.2 Phép trừ Để trừ hai số nhị phân.nếu bit dấu là số 1 thì số là số âm.cộng với -1 nhớ ở bƣớc 4 là -1.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).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.ta có số bù 1 của số nhị phân đó.

510=0000 01012.viết 0 nhớ 1 0+0=0.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.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.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. Ví dụ thực hiên phép trừ 2-5=-3 Ta có 210=0000 00102 510=0000 01012.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.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ả. Ví dụ:Thực hiên phép trừ 2-5=-3 Ta có 210=0000 00102.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.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.Số bù 1 của 5 là 1111 1010.số bù 2 cũng đƣợc dùng để biểu diễn số âm.3.là số bù 2 của -3 2.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.nếu bit dấu là 1 thì là số âm.ta có thể thực hiện phép cộng với số bù 1 của số nhị phân đó.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 .

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.mỗi hàng mới phải dịch chuyển vị trí sang bên trái 1 bit.Bài tập lớn môn học Kiến trúc máy tính mới.nếu băng 1 thì ta đƣợc kết quả là số nhân để thực hiện phép cộng. Ở 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.bằng 1 nên kết quả là số nhân 1010. Nhóm 05 -8- Lớp K44KMT .3.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.Dịch trái bit thứ 2 sang 1 bit.ta đƣợc kết quả đầu tiên 0000. 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.4 Phép chia Phép chia nhị phân đƣợc thực hiện nhƣ chia thập phân.xét tiếp bit thứ 2.Nếu bằng 0 thì ta đƣợc kết quả là 0 để thực hiện phép cộng.bit đầu tiên của số bị nhân bằng 0.

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. 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 .3.1. 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.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 .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 đó.1 Thiết kế bộ cộng 3.

Khi này ta có mạch cộng đủ: full adder (FA) Hình 3. 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 đó. 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 đó.1. Cả 2 mạch HA và FA ở trên mới chỉ làm phép cộng 1 bit 3.10 Lớp K44KMT .1.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.Bài tập lớn môn học Kiến trúc máy tính 3. số nhớ khi này trở thành bit LSB của tổng Nhóm 05 .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 đủ 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.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).

Với công nghệ tích hợp cao. nó cũng cần 1 xung nhịp để giữ cho các mạch làm việc động bộ Hình. Khi này 2 bit LSB của các số đƣợc cộng trƣớc. 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. 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.11 - Lớp K44KMT .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.6 Mạch cộng 4 bit nối tiếp Nhóm 05 . Tức là đã có trì hoãn làm giảm tính đồng bộ của mạch. 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. 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.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. 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. Rõ ràng mạch thực hiện phép tính chậm hơn so với cộng song song.3.3.

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 .2.Bài tập lớn môn học Kiến trúc máy tính 3.12 - Lớp K44KMT .8 là mạch trừ FS cùng bảng trạng thái hoạt động ở bên cạnh hình .3. Để có số âm của 1 số ta lấy bù 1 của số đó.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).3.3. còn khi thực hiện mạch thì đó là cổng đảo Hình .Phép trừ thực ra là phép cộng với số âm. bảng trạng thái và mạch logic Còn hình .7 là mạch trừ HS và bên cạnh là bảng trạng thái Hình .3.7 Mạch trừ nửa.9 Mạch trừ hết Nhóm 05 .3.2 Thiết kế bộ trừ nửa và trừ đủ 3.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.

11 Mạch cộng trừ dùng bù 1 Nhóm 05 .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.2. 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. Co3 là bit LSB của tổng đƣợc vòng trở lại (qua cổng AND) về Ci0. Hình minh hoạ cho mạch trừ nhị phân 4 bit Hình . sẽ cho phép cộng nhiều bit.10b Trừ 4 bit nối tiếp Hình . Hình .3. số B bị đảo.13 - Lớp K44KMT . các cổng EXOR có 1 ngõ ở thấp nên cho số B qua không bị đảo. số nhớ của tầng cuối cần đem về bit nhớ ban đầu của tầng đầu.10a Mạch trừ 4 bit song song 3.Bài tập lớn môn học Kiến trúc máy tính 3.2 Mạch trừ nhiều bit Với mạch trừ nhị phân 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.3.

Cách này đƣợc sử dụng phổ biến ở VXL và máy tính. 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.14 Lớp K44KMT .4 Cộng trừ hai số BCD 3. 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. Khi đó mạch cộng trừ nhị phân 4 bit dùng bù 2 sẽ nhƣ sau : Hình .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.3.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.22 là mạch cộng trừ 2 số 4 bit dùng bù 2. Để ý 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.13 Mạch cộng 2 số BCD 1 bit Nhóm 05 . Hình 2. 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.12 Mạch cộng trừ dùng bù 2 3. muốn lấy đúng kết quả thì phải chuyển trở lại. Tổng hay hiệu ra ở dạng bù 2.3.4.3. Ví dụ nhƣ cộng 2 số BCD sau: Hình .

2 Trừ 2 số BCD Với phép trừ BCD. 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. tổng ra không có gì thay đổi. 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.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ó). Lấy bù 9 của 1 số tức là lấy 9 trừ đi số đó. 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 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ừ.5 Mạch nhân 3.4. 3.14 Mạch trừ 2 số BCD 1 bit 3.nếu số bị nhân bằng 1 thì ta thực hiện phép cộng với số nhân.15 Lớp K44KMT . Ta có thể ghép nhiều mạch cộng ở trên để có mạch cộng 2 số BCD nhiều bit.nếu số bị nhân bằng 0 thì thực hiện phép cộng đối Nhóm 05 .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.5. Ở 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.

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: Sơ đồ phép nhân Nhóm 05 .15: Sơ đồ huật toán nhân H3.16 - 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 với số 0.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. 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ớ . H3. 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.

17: Giải thuật Booth 3.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 .17 - Lớp K44KMT .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 .Bài tập lớn môn học Kiến trúc máy tính H3.

FA .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 .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). P18 FA .3 Mạch nhân nối tiếp-song song đơn giản Hình 3. S4 S3 S2 S1 Hình 3. .18 - Lớp K44KMT .. . FA . .19Mạch nhân nối tiếp-song song đơn giản Trong mạch này. . 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.5. .. ứng với bit 0 ngã ra cổng AND bằng không (cổng 1 và 3) Nhóm 05 . . FA .18 Sơ đồ mạch nhân 3. 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 . P27 .

Ngã ra B có giá trị của số bị nhân đƣợc làm trễ 1 bit (1 xung đồng hồ).20 cộng số ngã ra 3 và ngã ra 4 bị trễ 1 bit Nhóm 05 .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. Số nhân là 1010 (1010) và số bị nhân là 1110 (1410). Ngã ra D giống nhƣ B nhƣng trễ 3 bit. 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. Đ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.19 - Lớp K44KMT . Thí dụ 15 : Xem bài toán nhân 10x14. 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.20) H 3. Ngã ra C đƣợc làm trễ 2 bit và luôn bằng 0 (Giống nhƣ A). ngƣời ta dùng mạch (H 3.

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ớ. 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 - Lớp K44KMT . 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. Ngã ra cổng 3 luôn luôn bằng 0.21) cho kết quả với số nhớ Và (H 3.22) là một mạch thực tế dùng ghi dịch 4 bit có ngã vào/ra song song.Bài tập lớn môn học Kiến trúc máy tính Mạch (H 3. 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. Mạch (H 3. Ngã ra cổng 4 sau 4 xung Clock là 1110.21) cho kết quả với số nhớ . Nhóm 05 . 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.20) cần (n-1) mạch cộng và mạch trễ (FF D) cho số nhân n bit. 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. nếu số bị chia lớn hơn số chia thì thƣơng số =1.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. ngƣời ta làm phép tính trừ một phần số bị chia cho số chia. ngƣợc lại thì thƣơng số =0.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. thƣơng số là 0.Bài tập lớn môn học Kiến trúc máy tính H3. Sơ đồ (H 3. 3. nếu kết quả âm.6. thực hiện phép trừ.21 Lớp K44KMT . thƣơng số là 1. Công việc đƣợc lặp lại cho đến khi chấm dứt. Nhóm 05 . nếu kết quả dƣơng. 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.23 giải thuật thực hiện bài toán chia 3.23) tóm tắt giải thuật thực hiện bài toán chia H 3.

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 .25) Nhóm 05 .Cộng số bị chia với số chia. lệnh kế tiếp thực hiện là trừ số chia đã dịch phải.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. 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 nhỏ hơn số bị chia (nhánh bên trái) Sau khi lấy kết quả =1. H3.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. (H 3. Quan sát giản đồ (H 3. 3.6. số thƣơng ngƣời ta phải dùng thanh ghi chứa số bị chia đƣợc phục hồi.24) là sơ đồ giải thuật thực hiện phép chia có phục hồi số bị chia.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: . 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.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.

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

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ừ.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. 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. 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.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. 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. 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 .

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. đƣợc kết quả 4 và số dƣ là 1. 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. Số nhớ của bài toán cuối cùng (bƣớc 6) là bit LSB của thƣơng số.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. (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. Sau bƣớc thứ nhất. 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. Nhóm 05 .26).25 - Lớp K44KMT . 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ƣ. Trong (H 6.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ừ.

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 .

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

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.4 Phép chia a)Phép chia 1bit Hình 4.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.28 - Lớp K44KMT .

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

Vì vậy các phép toán số học nhƣ cộng.chia sẽ ngày càng giúp ích nhiều hơn cho con ngƣời.sâu sắc nên bài còn nhiều thiếu sót.30 - Lớp K44KMT .Mong các thày cô bỏ qua những sai sót cho chúng em. Nhóm 05 .nhân.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.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.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. 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.trừ.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.chƣa hiểu rõ.Nhƣng do mới tìm hiểu và nghiên cứu.

Sign up to vote on this title
UsefulNot useful