Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 57 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
57
Dung lượng
2,36 MB
Nội dung
4/4/2014 Binary numbers (And some other useful bases) Tại sử dụng hệ nhị phân? • Máy tính sử dụng số nhị phân vì: – Dễ thực mạch: 1=1V, 0=0V (in the past 3.3V or 5V) – Dễ thiết kế mạch phức tạp với cổng (transistors) • Có thể sử dụng nhiều mức điện áp?… – 1=1V, 2=2V, 3=3V, etc – Nhiễu phá huỷ mạch – Ví dụ nhiễu mạch số: • No noise: + → 1; • With noise: 0.9 + 0.4 → 1, not 1.3 – Ví dụ nhiễu mạch tương tự: • 1.4V + 3.4V → 4.8V (closer to than 4!) 4/4/2014 Hệ số (binary) 4/4/2014 Các hệ số 4/4/2014 LSBs MSBs • LSB = Least Significant Bit - > Bit có trọng số thấp • MSB = Most Significant Bit -> bit có trọng số cao • Example: 0101 1101 1110 1001 MSB – largest value digit LSB– lowest value digit 4/4/2014 Số có dấu 4/4/2014 Làm để biểu diễn số có dấu • Có chuẩn biểu diễn – Trường dấu – Mã bù – Mã bù • Trong chuẩn MSB bit dấu (1 = negative) • Mã bù khơng sử dụng phải tính • Ln sử dụng mã bù cho số ngun • Trường dấu sử dụng biểu diễn số thực dấu phẩy động 4/4/2014 Trường dấu Đơn giản bit bit dấu: +/‐ 4/4/2014 Một số vấn đề số có dấu Kiểm sốt dấu trường dấu: – Nếu A âm B âm, A+B → âm (A + B) – Nếu A dương B dương, A+B → dương (A + B) Phức tạp với đấu trừ: 4/4/2014 10 Tràn số mã bù • Khác với số khơng dấu -> có tín hiệu nhớ • Tràn số có nghĩa số có dấu khơng biểu diễn • Trong phép cộng số bù 2: – Các số trái dấu khơng tràn số – Tràn số số có dấu lại cho kết khác dấu • Trong hai ví dụ, carry in đến bit dấu == carry out 4/4/2014 43 Làm để xây dựng mảng nhớ Sử dụng địa nhị phân (binary address) để truy nhập nhớ mong muốn đầu bytes! 4/4/2014 44 Đọc mảng nhớ 4/4/2014 45 Các mảng SRAM 4/4/2014 46 SRAM from ARM 4/4/2014 47 Các khối quan trọng • MUXes lựa chọn đầu nhiều đầu vào: Đầu vào bus (multiple bits) • DEMUXes chức ngược lại: chọn đầu nhiều đầu tương ứng với đầu vào • DECODERS nhận giá trị nhị phân đầu vào chuyển đổi thành đầu ra(1‐hot): giá trị nhị phân 010 biến đổi thành 1‐hot đầu #2 • ENCODERS nhận 1‐hot đầu vào chuyển đổi thành giá trị nhị phân: 1‐hot đầu vào #3 thành giá trị nhị phân 011 • ADDERS nhận đầu vào A B đầu tổng (sum) – Half‐adder: A+B = {Sum, CarryOUT} – Full‐adder: A+B+CarryIN = {Sum, CarryOUT} 4/4/2014 48 Ví dụ: Xây dựng đếm • Làm để tạo đếm? – Đếm 0, 1, 2, 3, 4, … – Tăng giá trị sau xung đồng hồ clock signal (trạng thái thay đổi rõ rệt) • Cơng việc cụ thể: – Tính tốn giá trị (e.g., 0→1, 1→2, etc.) – Lưu trữ giá trị – Cập nhật giá trị • Các bước thực hiện: – Combinational: • next_value = current_value + – Sequential (state): • No clock: current_value = current_value • On clock: current_value = next_value • Đây cách đếm đếm có tín hiệu đồng hồ 4/4/2014 49 Tổ hợp logic đếm • Đếm nào? – →1, → 2, → • Answer: An adder! • Công việc cụ thể: – Next_value = current_value + • Tạo cộng nào? – SUM = A XOR B – CARRY = A AND B • Nếu lớn bit, ví dụ cộng bit? Input: bits of A (A, A1, A2) Input: bits of B (B, B1, B2) Output: bits (SUM, SUM1, SUM2, COUT) 4/4/2014 50 Kết nối cộng nhiều bit (ripple carry add) • Móc nối giá trị nhớ sang cộng kế tiếp: – Carry out bit → Carry in • Cần cộng đầy đủ!: – {CIN + A + B} → {SUM, COUT} 4/4/2014 51 Kiểm tra cộng • Phép cộng : –2+3=5 – A = = 010 – B = = 011 – Output = 101 – Có nhớ bit thứ 4/4/2014 52 Sử dụng cộng để tạo đếm • Giá trị kế tiếp: next_value = current_value + – Có tất giá trị bit • Nối dây đầu vào đầu ra? – Kết nối giá trị nhớ – B = 001 (+1) – A = current_value – SUM = next value 4/4/2014 53 Dùng mạch chốt để tránh vịng lặp hồi tiếp • Next_value = current_value + • Cần phải cách ly giá trị current_value với next_value • Các mạch chốt dịch chuyển đầu tới đầu vào tín hiệu đồng hồ : state element • Cập nhật current_value thành new_value có tín hiệu đồng hồ 4/4/2014 54 Tín hiệu đồng hồ hoạt động nào? Time → Khi clock 0→1 đầu vào mạch chốt lưu trữ đầu cập nhật lại tương ứng với đầu vào 4/4/2014 55 Tốc độ tín hiệu đồng hồ • Khi sườn xung tăng (0→1) • Giá trị next_value lưu lại giá trị • Giá trị current_value đưa vào cộng để tạo giá trị next_value 4/4/2014 56 Tổng quan: mức logic nối tiếp • Các bước thực hiện? – Phần tử trạng thái lưu giữ giá trị current state – Sử dụng tổ hợp logic để tính toán giá trị next state từ current state – Tạo vịng lặp hồi tiếp: • Với clock signal • The current state → next state • Đầu vào tác động qua lại lẫn • Tốc độ đồng hồ (Clock speed) xác định việc mức logic cập nhật nhanh 4/4/2014 57 Tổng kết: phần tử trạng thái • Các phần tử trạng thái (memories) lưu trữ trạng thái • Chỉ cập nhật thời gian xác định (e.g., clock 0→1) • Sử dụng tổ hợp logic (combinational logic -> gates) để tính tốn giá trị (the next value) • Sử dụng phần tử trạng thái (memories) để lưu trữ giá trị thời (the current value) • Cập nhật giá trị thời = giá trị xung đồng hồ 4/4/2014 ... đầu vào chuyển đổi thành đầu ra(1‐hot): giá trị nhị phân 010 biến đổi thành 1‐hot đầu #2 • ENCODERS nhận 1‐hot đầu vào chuyển đổi thành giá trị nhị phân: 1‐hot đầu vào #3 thành giá trị nhị phân... 42 Bộ nhớ • Bộ nhớ mảng chiều phần tử bit • Mỗi phần tử bit • Cho phép hàng đọc từ liệu • Chỉ truy nhập hàng một thời điểm, hàng cho phép - hot 4/4/2014 43 Làm để xây dựng mảng nhớ Sử dụng địa... • Bộ giải mã (Decoders) – Chuyển đổi mã nhị phân thành 1‐hot – Số nhị phân10 == 0100 1‐hot • Bộ mã hố (Encoders) – Chuyển đổi cấu trúc 1‐ hot thành nhị phân – 1‐hot 00000010 = binary 001 4/4/2014