Cộng và flip-flop
Đã giới thiệu| English | Ý nghĩa |
|---|---|
| carry/ˈkæri/ | bù |
| half adder/hɑːf ˈædə/ | bộ cộng một |
| full adder/fʊl ˈædə/ | cộng toàn phần |
| flip-flop/flɪp flɒp/ | flip-flop |
| ripple-carry adder/ˈrɪpl ˈkæri ˈædə/ | cộng bù lan truyền |
| bistable/baɪˈsteɪbl/ | hai trạng thái ổn định |
| counters/ˈkaʊntəz/ | máy đếm |
| SRAM/ˈesræm/ | RAM tĩnh |
| SR flip-flop/ˌes ˈɑː flɪp flɒp/ | trạng thái flip-flop SR |
| JK flip-flop/ˌdʒeɪ ˈkeɪ flɪp flɒp/ | trạng thái flip-flop JK |
| toggle/ˈtɒɡl/ | chuyển đổi trạng thái |
Cách một máy tính chỉ biết đúng và sai thực hiện phép tính
- Bộ xử lý không có bộ cộng theo nghĩa là một thiết bị biết các con số. Nó chỉ có các cửa logic trả về đúng hoặc sai, và không có gì khác.
- Thế nhưng $1 + 1 = 10$ lại được tạo ra từ hai cửa logic: XOR cho ra chữ số tổng, AND cho ra bit nhớ. Đó chính là toàn bộ đơn vị số học thu nhỏ, và khi nối chuỗi các bản sao của nó vào nhau, ta có thể cộng các số có độ dài bất kỳ.
- Nửa còn lại của máy tính là khả năng ghi nhớ, và một bit bộ nhớ cũng chỉ là các cửa logic được đấu dây sao cho đầu ra quay trở lại đầu vào để duy trì trạng thái.
- Bài học này giới thiệu về bộ cộng nửa, bộ cộng đầy đủ và flip-flop dùng để lưu trữ một bit.
Bộ cộng nửa
- Một bộ cộng nửa cộng hai bit đơn lẻ, $A$ và $B$, tạo ra tổng $S$ và bit nhớ $C$.
| A | B | S | C |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
- Đọc các cột: $S$ bằng 1 khi chính xác một trong hai đầu vào bằng 1, đó là XOR. $C$ bằng 1 chỉ khi cả hai đều bằng 1, đó là AND. Vậy $S = A \oplus B$ và $C = A \cdot B$.
- Nó bỏ qua bit nhớ vào, đó là lý do nó chỉ là "nửa" bộ cộng và không thể nối chuỗi độc lập.

Hai cửa logic, và phép cộng nhị phân tồn tại
Các cổng bên trong máy cộng
Bit tổng của máy cộng bán phần là cổng XOR và bit carry là cổng AND — hãy đảo A và B và xem hàng bảng chân lý nào sáng lên.
Trong máy cộng bán phần, đầu ra tổng S được tạo bởi cổng nào?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
$S = A \text{ XOR } B$ (bằng 1 khi các đầu vào khác nhau); carry là $A \text{ AND } B$.
Trong máy cộng bán phần, đầu ra carry C được tạo bởi cổng đơn nào?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
C bằng 1 chỉ khi cả hai đầu vào đều bằng 1, đó là AND. Tổng S bằng 1 khi đúng một đầu vào bằng 1, đó là XOR.
Bộ cộng đầy đủ
- Một bộ cộng đầy đủ cộng ba bit: $A$, $B$ và bit nhớ vào, tạo ra tổng và bit nhớ ra. $S = A \oplus B \oplus C_{\text{in}}$.
- Nó có thể được xây dựng từ hai bộ cộng nửa plus một cửa OR: bộ cộng nửa thứ nhất cộng $A$ và $B$, bộ cộng nửa thứ hai cộng tổng đó với bit nhớ vào, và cửa OR kết hợp hai bit nhớ.
- Nối chuỗi các bộ cộng đầy đủ sao cho mỗi bit nhớ ra cung cấp bit nhớ vào cho bước tiếp theo, bạn sẽ có một bộ cộng nhớ lan truyền đa bit: bốn bộ cộng như vậy có thể cộng hai số 4-bit.

Bit nhớ chính là thứ phải di chuyển, đó là lý do nó được gọi là 'lan truyền'
Gắn mỗi khối xây dựng với chức năng của nó.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
Máy cộng cộng các bit (nối chuỗi máy cộng đầy đủ để cộng nhiều bit); flip-flop lưu trữ một bit (JK khắc phục trạng thái cấm của SR).
Máy cộng đầy đủ khác máy cộng bán phần như thế nào?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Máy cộng đầy đủ cộng A, B và carry-in (để các máy cộng có thể nối chuỗi) — được xây dựng từ hai máy cộng bán phần plus một cổng OR.
Ví dụ giải chi tiết: tại sao dùng bộ cộng đầy đủ, không phải hai bộ cộng nửa
- Giải thích tại sao bộ cộng 4-bit được xây dựng từ bộ cộng đầy đủ thay vì bộ cộng nửa.
- Khi cộng hai số 4-bit từng cột, mọi cột trừ cột ngoài cùng bên phải đều có thể nhận được bit nhớ từ cột ở bên phải nó, nên nó có ba đầu vào cần cộng, chứ không phải hai.
- Bộ cộng nửa không có bit nhớ vào, nên nó không thể nhận đầu vào thứ ba đó, và bit nhớ sẽ bị mất.
- Chỉ có cột ít quan trọng nhất (ít ý nghĩa) mới không có bit nhớ vào, nên bộ cộng nửa sẽ phù hợp ở đó; tuy nhiên trong thực tế tất cả bốn đều là bộ cộng đầy đủ, với bit nhớ vào đầu tiên được nối cố định với 0.
Tại sao máy cộng 4-bit phải dùng máy cộng đầy đủ thay vì máy cộng bán phần?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Máy cộng bán phần vẫn tạo ra carry; thứ nó thiếu là carry-in, nên không thể nhận carry đến từ cột trước đó.
Sắp xếp quá trình xây dựng máy cộng ripple-carry 4-bit theo thứ tự.
Difficulty 3/5 · 200 coins + a small bonus on first completion today
Cổng tạo máy cộng bán phần, máy cộng bán phần tạo máy cộng đầy đủ, máy cộng đầy đủ nối chuỗi thành máy cộng độ rộng từ. Carry lan truyền dọc theo chính là nguồn gốc tên gọi.
Flip-flops
- Một flip-flop là một mạch hai trạng thái ổn định: nó có hai trạng thái ổn định, 0 và 1, và nó ghi nhớ trạng thái đang ở. Nó lưu trữ chính xác một bit.
- Nó là phần tử cơ bản của đăng ký, nơi $n$ bit tương ứng với $n$ flip-flop, của bộ đếm, và các ô nhớ SRAMRAM.
- Khác với bộ cộng, mà đầu ra phụ thuộc chỉ vào đầu vào hiện tại, đầu ra của flip-flop phụ thuộc vào quá khứ các đầu vào. Đó chính là ý nghĩa của bộ nhớ ở cấp độ mạch điện.
Flip-flop được dùng để:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Flip-flop có hai trạng thái ổn định và giữ một bit — là khối xây dựng của thanh ghi và SRAM.
Flip-flop có hai trạng thái ổn định và nhớ một bit — điều này khiến nó trở thành khối xây dựng của thanh ghi và SRAM.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Nối chuỗi flip-flop tạo thành thanh ghi và bộ đếm; bộ nhớ đệm SRAM được xây dựng từ chúng (không cần làm mới, khác với DRAM).
SR và JK
- Một flip-flop SR có inputs S (set) và R (reset) và outputs $Q$ và $\overline{Q}$, được xây dựng từ hai cửa NOR ghép chéo.
S=1, R=0đặt $Q$ thành 1.S=0, R=1đặt $Q$ thành 0.S=0, R=0giữ nguyên trạng thái hiện tại, đó là chức năng bộ nhớ.S=1, R=1là không hợp lệ: nó yêu cầu set và reset cùng lúc.- Một flip-flop JK loại bỏ lỗi này bằng cách gán ý nghĩa cho input
1,1: lật ngược, khiến output lật sang trạng thái đối diện. Điều đó làm cho nó lý tưởng cho bộ đếm, vì một chuỗi các flip-flop lật ngược sẽ đếm theo nhị phân. - Một JK thường được đồng bộ hóa bằng xung clock: inputs chỉ hoạt động tại cạnh xung clock, giữ cho mọi flip-flop trong máy chạy đồng bộ.

Input không hợp lệ được biến thành một input hữu ích
Đối với flip-flop SR, phát biểu nào đúng? Chọn tất cả các đáp án đúng.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
Chuyển đổi trạng thái tại 1,1 là ưu điểm của JK. Ở SR, đầu vào yêu cầu set và reset cùng lúc nên không hợp lệ.
Hành vi chuyển đổi trạng thái (toggle) của flip-flop JK khiến nó phù hợp để xây dựng bộ đếm.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Một chuỗi các flip-flop, mỗi cái chuyển đổi trạng thái theo đầu vào của nó sẽ đếm theo nhị phân. Việc đồng bộ hóa xung clock giữ cho mọi giai đoạn hoạt động cùng nhịp.
Ví dụ minh họa: theo dõi hoạt động của flip-flop SR
- $Q$ hiện đang là 0. Hãy cho biết $Q$ sau khi inputs lần lượt là S=1 R=0, rồi S=0 R=0, rồi S=0 R=1.
- S=1, R=0 set output, nên $Q$ trở thành 1.
- S=0, R=0 giữ nguyên, nên $Q$ vẫn là 1. Đây là bước chứng minh nó là bộ nhớ: inputs không nói gì cả, nhưng output vẫn duy trì.
- S=0, R=1 reset, nên $Q$ trở thành 0. Nếu áp dụng S=1 và R=1, câu trả lời là input này không hợp lệ, không phải là một giá trị hợp lệ.
Điểm số dễ mất
- $S = A \oplus B$ và $C = A \cdot B$: XOR cho tổng, AND cho bit nhớ. Đổi chỗ chúng sẽ mất điểm cả hai.
- "Nửa" có nghĩa là không có bit nhớ vào, không phải "nửa số bit".
- Bộ cộng đầy đủ là hai bộ cộng nửa plus một cửa OR, và cửa OR kết hợp hai bit nhớ.
- Trên flip-flop SR,
0,0giữ nguyên và1,1là không hợp lệ. Điểm cải thiện của JK là1,1lật ngược.
Bạn đã nắm vững
- half adder: hai bit vào, $S = A \oplus B$ từ XOR và $C = A \cdot B$ từ AND; không có bit nhớ vào
- full adder: ba bit vào, được xây dựng từ hai half adders plus một OR; nối chuỗi chúng, carry-out sang carry-in, tạo thành ripple-carry adder
- một flip-flop là bistable và lưu trữ một bit; $n$ flip-flops tạo nên một register $n$-bit, và chúng là các ô của SRAM
- SR: set, reset,
0,0giữ nguyên,1,1không hợp lệ · JK:1,1lật ngược, điều đó tạo nên bộ đếm, và nó được clock để giữ đồng bộ