Chỉ làm mỗi việc bật tắt dòng điện, các bóng bán dẫn thực hiện việc tính toán như thế nào?

SkylerNew

Chuyên viên tin tức
Thành viên BQT
Những bộ xử lý điện toán hiện đã trở nên quá quen thuộc trong cuộc sống hàng ngày của chúng ta, chúng hiện diện trong các máy tính cầm tay tính toán đơn giản, các máy tính cá nhân phức tạp, cũng như cả trong các điện thoại, tablet mà chúng ta cầm theo người hàng ngày.

Mặc dù đa dạng về hình dạng cũng như chức năng, chúng đều chung một nguyên lý hoạt động, đó là việc bật tắt dòng điện đi qua bóng bán dẫn để biểu diễn cho các số 0 và 1 trong hệ đếm nhị phân. Tuy nhiên, nếu chỉ dựa vào việc bật tắt dòng điện đi qua bóng bán dẫn, bộ xử lý thực hiện việc tính toán cũng như các tác vụ khác như thế nào?



Các cổng logic - thành phần cơ bản của mỗi phép tính

Bản thân mỗi bóng bán dẫn đơn lẻ thì khó có thể làm gì hơn được, nhưng khi được ghép nối một cách chính xác với nhau, chúng sẽ tạo thành các cổng logic (các Logic Gate). Các cổng logic là những mạch điện siêu nhỏ được tạo thành từ các bóng bán dẫn.

Với đầu vào là hai bóng bán dẫn, dựa vào trạng thái đóng mở của chúng trong mạch điện, mỗi cổng logic sẽ cho ra kết quả là 0 hoặc 1 tương ứng. Tùy vào cách ghép mạch giữa bóng bán dẫn đầu vào và đầu ra, có 8 cổng logic cơ bản: cổng OR, cổng XOR, cổng NOR, cổng XNOR, cổng AND, cổng NAND, cổng NOT và cổng Buffer (cổng đệm).


Biểu tượng các cổng Logic.

Ví dụ cổng OR là một mạch song song với hai đầu vào là hai bóng bán dẫn. Khi có dòng điện đặt vào cổng, chỉ cần một trong hai bóng bán dẫn đầu vào bật (có đầu vào là 1 hoặc True) thì đầu ra của cổng sẽ có điện (hay trả ra kết quả là 1 hoặc True).

Còn cổng AND là một mạch nối tiếp với 2 bóng bán dẫn đầu vào. Do vậy, cổng AND chỉ trả ra kết quả True (1) nếu cả hai cổng đầu vào là True (1) (hay cả hai bóng bán dẫn đều bật để dòng điện đi qua).


Minh họa về mạch điện trong các cổng AND, cổng OR và cổng NOT.

Cổng NOT chỉ là một công tắc đóng mở dòng điện, do vậy nó là cổng nghịch đảo logic của các cổng trên. Do vậy, các cổng có tiền tố N, như NOR, NAND và XNOR là phiên bản ngược lại của các cổng cơ sở trên.

Trong khi đó, cổng XOR lại là sự kết hợp của ba cổng AND, OR và NOT với nhau theo cách thiết lập đặc biệt. Đặc tính của cổng XOR là sẽ cho ra kết quả True (1) nếu một trong hai đầu vào là True (1). Nhưng nếu cả hai đầu vào của cổng XOR giống nhau, kết quả trả về sẽ là False (hay 0).


Biểu tượng cổng XOR và XNOR cùng sơ đồ mạch điện của 2 cổng cơ bản này.

Làm toán bằng cổng logic như thế nào?

Kết hợp hai cổng logic trên, cùng với một mạch cộng toàn phần (full adder), bạn có thể thực hiện được phép tính cộng hai số nhị phân cơ bản.

Sơ đồ trên đây biểu diễn mạch cộng bán phần (half adder) với hai đầu vào A và B, cùng các XOR và cổng AND. Đầu vào A được bật lên trong khi đầu vào B đang tắt, tương tự như việc 1 và 0 được nhập vào phép tính cộng. Do chỉ có một trong hai đầu vào được bật lên, cổng XOR được bật lên và cho ra kết quả 1, còn cổng AND vẫn tắt khi chỉ có một trong hai đầu vào được bật lên.


Sơ đồ mạch của mạch cộng bán phần Half Adders.

Lúc này, nếu bật cả hai đầu vào A và B, tương tự như việc nhập vào phép tính 1+1. Lúc này cổng XOR sẽ bị tắt đi còn cổng AND được bật lên vì cả hai đầu vào đều bật, trả ra kết quả đúng của phép tính 1+1=2, hay 10 trong hệ nhị phân.

Do một bit máy tính không thể lưu trữ giá trị nào lớn hơn 1, nên kết quả của phép tính sẽ được ghi vào 2 bit đầu ra. Bit SUM sẽ ghi chữ số 0 của kết quả trả về, còn ký tự 1 được ghi vào bit số dư Cin (Carry In) trong mạch cộng bán phần này.

Tuy thực hiện được phép tính 1+1=2, mạch cộng bán phần này lại không thể làm được gì khác với chỉ 2 bit đầu vào. Do vậy, để thực hiện được các phép tính phức tạp hơn, mạch cộng toàn phần (Full Adders) được thiết kế nên từ việc ghép các mạch cộng bán phần này lại với nhau.


Sơ đồ mạch cộng toàn phần với 3 bit đầu vào, A, B và số dư Cin của mạch cộng bán phần trước đó.

Với thiết kế này, mạch cộng toàn phần sẽ có 3 đầu vào với hai số được nhập vào, cùng với số dư Cin của phép cộng bán phần trước. Khi nhiều mạch cộng được nối với nhau thành chuỗi, số dư Cin của mạch này sẽ được chuyển thành đầu vào cho mạch cộng kế tiếp.

Thiết kế này cho phép bộ xử lý thực hiện được các phép tính phức tạp hơn, nhờ việc bổ sung thêm các mạch bán cộng vào chuỗi này. Nhiều bit đầu vào hơn nghĩa là nhiều mạch cộng toàn phần hơn được thêm vào chuỗi.

Hầu hết các phép toán đều được hoàn thành nhờ việc bổ sung thêm các mạch vào chuỗi tính toán này. Phép tính nhân chỉ là phép cộng lặp đi lặp lại nhiều lần, còn phép trừ có thể thực hiện với các bit nghịch đảo thích hợp, còn phép tính chia là việc lặp lại của phép trừ. Ngoài ra, các bộ xử lý máy tính hiện đại đều có các giải pháp hỗ trợ bằng phần cứng để tăng tốc độ thực hiện các phép tính phức tạp hơn.


Sơ đồ mạch với các cổng logic để thực hiện phép tính 2+3=5.

Các phép tính càng phức tạp, càng cần đến nhiều cổng logic để thực hiện, nghĩa là càng nhiều hơn các bóng bán dẫn. Đây cũng chính là lý do khiến các nhà thiết kế và phát triển chip cần các bóng bán dẫn nhỏ nhất có thể, để có thể nhồi nhét nhiều đến mức tối đa các bóng bán dẫn trong mỗi bộ xử lý có kích thước giới hạn.

Theo Genk​
 

whatwhenwhere2

Active Member
ai học ngành kỹ thuật điện tử hoặc kiến trúc máy tính sẽ biết và hiểu bài này, học khoảng 2,3 lần sẽ hiểu :)
 

caothudeche

Moderator
không khó hiểu đâu ạ, cái này cũng dễ nhưng phải chậm rãi mới hiểu đc & nó còn có liên quan đến biểu đồ karnaugh cũng khá hay, chứ máy tính nó k hiểu hệ thập phân mà mọi người đang sử dụng đâu
Đối với đa phần, kể cả dân chuyên ngành đây là môn khó chứ không phải dễ.
Thoạt đầu thì là môn Vi xử lý, gọi là mặc kệ cái món cổng logic nó hoạt động như thế nào, chỉ quan tâm đến cấu trúc cơ bản của CPU, các lệnh của nó là lập trình được.
Nhưng mà tiếp đến là môn Kỹ thuật số, chuyên trị làm việc với các cổng Logic, lúc này thì là chúng ta đi làm toán cho thay CPU. Ở trên chỉ là các ví dụ gần như đơn giản nhất, còn thực tế ứng dụng cổng Logic cực nhiều và phức tạp, gần với HDVN nhất chính là các bộ DAC, ADC.
Xưa mình học môn này 90% khối trượt, thi lại lần 2. Các cao thủ Bách Khoa, ĐHQG cũng phải ngán.
 

whatwhenwhere2

Active Member
Đối với đa phần, kể cả dân chuyên ngành đây là môn khó chứ không phải dễ.
Thoạt đầu thì là môn Vi xử lý, gọi là mặc kệ cái món cổng logic nó hoạt động như thế nào, chỉ quan tâm đến cấu trúc cơ bản của CPU, các lệnh của nó là lập trình được.
Nhưng mà tiếp đến là môn Kỹ thuật số, chuyên trị làm việc với các cổng Logic, lúc này thì là chúng ta đi làm toán cho thay CPU. Ở trên chỉ là các ví dụ gần như đơn giản nhất, còn thực tế ứng dụng cổng Logic cực nhiều và phức tạp, gần với HDVN nhất chính là các bộ DAC, ADC.
Xưa mình học môn này 90% khối trượt, thi lại lần 2. Các cao thủ Bách Khoa, ĐHQG cũng phải ngán.

mình nghĩ là k có khó chẳng qua mấy ông thầy dạy k kỹ truyền đạt chưa hiệu quả dẫn đến ai cũng rớt, bản thân mấy thầy cũng k soạn bài vở, chắc là do chạy sô nhiều, chứ thực ra k quá khó do mình chưa hiểu vấn đề kỹ càng mà nguyên nhân là như mình nói ở trên
 

mrchubby

Chuyên viên tin tức
Đối với đa phần, kể cả dân chuyên ngành đây là môn khó chứ không phải dễ.
Thoạt đầu thì là môn Vi xử lý, gọi là mặc kệ cái món cổng logic nó hoạt động như thế nào, chỉ quan tâm đến cấu trúc cơ bản của CPU, các lệnh của nó là lập trình được.
Nhưng mà tiếp đến là môn Kỹ thuật số, chuyên trị làm việc với các cổng Logic, lúc này thì là chúng ta đi làm toán cho thay CPU. Ở trên chỉ là các ví dụ gần như đơn giản nhất, còn thực tế ứng dụng cổng Logic cực nhiều và phức tạp, gần với HDVN nhất chính là các bộ DAC, ADC.
Xưa mình học môn này 90% khối trượt, thi lại lần 2. Các cao thủ Bách Khoa, ĐHQG cũng phải ngán.
Em còn nhớ thời học hợp ngữ nữa cơ, nếu lập trình C 1 dòng thì hợp ngữ đến 40-50 dòng. Tiếc giờ quên sạch vì đã lâu rồi chả đụng đến
 

bca258nt

Well-Known Member
Nội dung mang tính kỹ thuật cơ bản nhưng chuyên sâu. Em đọc mãi mà chẳng hiểu được, khi nào công việc có liên quan cần tìm hiểu chắc sẽ hiểu một phần nào.
 

whatwhenwhere2

Active Member
Nội dung mang tính kỹ thuật cơ bản nhưng chuyên sâu. Em đọc mãi mà chẳng hiểu được, khi nào công việc có liên quan cần tìm hiểu chắc sẽ hiểu một phần nào.

có gì đâu mà chuyên sâu bạn, cái này thế giới họ đi trước mấy chục năm rồi giờ VN mình mới bắt đầu học :)
 
Bên trên