I) Giải mã địa chỉ 1) Giải mã địa chỉ là gì? Khi vi xử lý gửi một địa chỉ ra bus địa chỉ, thì thông tin này phải được chuyển thành lệnh cụ thể cho thiết bị cụ thể. Giải mã địa chỉ thực hiện tác vụ này. Nó sử dụng thông tin bus địa chỉ để xác định thiết bị nào sẽ được truy cập. 2) Các phương pháp giải mã địa chỉ Có 2 phương pháp giải mã địa chỉ: • Giải mã toàn phần (Full address decoding): Mỗi ngoại vi được gán cho một địa chỉ duy nhất. Tất cả các bit địa chỉ được dùng để định nghĩa vị trí được tham chiếu. • Giải mã một phần (Partial address decoding): Không phải tất cả các bit được dùng cho việc giải mã địa chỉ. Các ngoại vi có thể đáp ứng cho trên một địa chỉ. Phương pháp làm giảm độ phức tạp trong mạch giải mã địa chỉ. Thông thường các hệ thống nhỏ sử dụng giải mã một phần. II) Giao tiếp bộ nhớ 1) Một số khái nhiệm cơ bản: Đê tìm hiểu cấu tạo, hoạt dộng của bộ nhớ chúng ta bắt dầu với một số thuật ngữ lien quan dến bộ nhớ - Tế bào nhớ: là linh kiện hay một mạch diện tử dùng dể luu trữ một bit don (0 hay 1). Thí dụ của một tế bào nhớ bao gồm: mạch FF, tụ duợc tích diện, một diểm trên bang từ hay dia từ. . . . - Từ nhớ : là một nhóm các bit (tế bào) trong bộ nhớ dùng biểu diễn các lệnh hay dữ liệu duới dạng một số nhị phân. Thí dụ một thanh ghi 8 FF là một phần tử nhớ luu trữ từ 8 bit. Kích thuớc của từ nhớ trong các máy tính hiện dại có chiều dài từ 4 dến 64 bit. - Byte : từ 8 bit, dây là kích thuớc thuờng dùng của từ nhớ trong các máy vi tính. - Dung luợng : chỉ số luợng bit có thể luu trữ trong bộ nhớ. Thí dụ bộ nhớ có khả nang luu trữ 4.096 từ nhớ 20 bit, dung luợng của nó là 4096 x 20, mỗi 1024 (=2 ) từ nhớ đuợc gọi là “1K”, nhu vậy 4096 x 20 = 4K x 20. Với dung luợng lớn hon ta dùng “1M” hay 1meg dể chỉ 2^20 = 1.048.576 từ nhớ. - Ðịa chỉ : là số nhị phân dùng xác dịnh vị trí của từ nhớ trong bộ nhớ. Mỗi từ nhớ duợc luu trong bộ nhớ tại một dịa chỉ duy nhất. Ðịa chỉ luôn luôn duợc biểu diễn bởi số nhị phân, tuy nhiên dể thuận tiện nguời ta có thể dùng số hex hay thập phân, bát phân - Tác vụ dọc : (Read, còn gọi là fetch ), một từ nhớ tại một vị trí nào dó trong bộ nhớ duợc truy xuất và chuyển sang một thiết bị khác. - Tác vụ viết : (ghi, Write, còn gọi là store ), một từ mới duợc dặt vào một vị trí trong bộ nhớ, khi một từ mới duợc viết vào thì từ cu mất di. - Thời gian truy xuất (access time) : số do tốc dộ hoạt dộng của bộ nhớ, ký hiệu t Ðó là thời gian cần dể hoàn tất một tác vụ dọc. Chính xác dó là thời gian từ khi bộ nhớ nhận một dịa chỉ mới cho tới lúc dữ liệu khả dụng ở ngã ra bộ nhớ - Bộ nhớ không vinh cữu (volatile) : Bộ nhớ cần nguồn diện dể luu trữ thông tin. Khi ngắt diện, thông tin luu trữ bị mất. Hầu hết bộ nhớ bán dẫn là loại không vinh cữu, trong khi bộ nhớ từ là loại vinh cữu (nonvolatile). - Bộ nhớ truy xuất ngẫu nhiên (Random-Access Memory, RAM) : Khi cần truy xuất một dịa chỉ ta tới ngay dịa chỉ dó. Vậy thời gian dọc hay viết dữ liệu vào các vị trí nhớ khác nhau trong bộ nhớ không tùy thuộc vào vị trí nhớ. Nói cách khác, thời gian truy xuất nhu nhau dối với mọi vị trí nhớ. Hầu hết bộ nhớ bán dẫn và nhẫn từ (bộ nhớ trong của máy tính truớc khi bộ nhớ bán dẫn ra dời) là loại truy xuất ngẫu nhiên. - Bộ nhớ truy xuất tuần tự (Sequential-Access Memory, SAM) : Khi cần truy xuất một dịa chỉ ta phải luớt qua các dịa chỉ truớc nó. Nhu vậy thời gian dọc và viết dữ liệu ở những vị trí khác nhau thì khác nhau. Những thí dụ của bộ nhớ này là bang từ, dia từ. Tốc dộ làm việc của loại bộ nhớ này thuờng chậm so với bộ nhớ truy xuất ngẫu nhiên. - Bộ nhớ dọc/viết (Read/Write Memory, RWM) : Bộ nhớ có thể viết vào và dọc ra. - Bộ nhớ chỉ dọc (Read-Only Memory, ROM): là bộ nhớ mà tỉ lệ tác vụ dọc trên tác vụ ghi rất lớn. Về mặt kỹ thuật, một ROM có thể duợc ghi chỉ một lần ở noi sản xuất và sau dó thông tin chỉ có thể duợc dọc ra từ bộ nhớ. Có loại ROM có thể duợc ghi nhiều lần nhung tác vụ ghi khá phức tạp hon là tác vụ dọc. ROM thuộc loại bộ nhớ vinh cữu và dữ liệu duợc luu giữ khi dã cắt nguồn diện. - Bộ nhớ tinh (Static Memory Devices) : là bộ nhớ bán dẫn trong dó dữ liệu dã luu trữ duợc duy trì cho dến khi nào còn nguồn nuôi. - Bộ nhớ dộng (Dynamic Memory Devices) : là bộ nhớ bán dẫn trong dó dữ liệu dã luu trữ muốn tồn tại phải duợc ghi lại theo chu kỳ. Tác vụ ghi lại duợc gọi là làm tuoi (refresh). - Bộ nhớ trong (Internal Memory) : Chỉ bộ nhớ chính của máy tính. Nó luu trữ các lệnh và dữ liệu mà CPU dùng thuờng xuyên khi hoạt dộng. - Bộ nhớ khối (Mass Memory): Còn gọi là bộ nhớ phụ, nó chứa một luợng thông tin rất lớn ở bên ngoài máy tính. Tốc dộ truy xuất trên bộ nhớ này thuờng chậm và nó thuộc loại vinh cữu. 2) Giao tiếp bộ nhớ với vi xử lý. Vi xử lí sử dụng bộ nhớ để lưu trữ các lệnh và dữ liệu trong khi thực thi chương trình. Do đó vi xử lý thực hiện nhiều tác vụ ghi/đọc với bộ nhớ trong khi thực thi chương trình. Mỗi chip bộ nhớ RAM hay ROM sẽ có một ngõ vào có tên là /CE (Chip Enable=cho phép chip [hoạt động]) hoặc /CS (Chip Select=Chọn chip), thông thường các chân này hoạt động logic tích cực thấp, nghĩa là chân này bằng mức 0 thì chip này được chọn. Vì trong mạch có nhiều thiết bị I/O và bộ nhớ, do đó cần phải có mạch giải mã địa chỉ để tạo ra các tín hiệu chọn chip. Bus điều khiển có các tín hiệu định thì (do vi sử lí cung cấp) để đồng bộ chuyển thông tin giữa vi xử lý và bộ nhớ hay thiết bị I/O. Tổng quát thì có 2 tín hiệu RD (Read) và WR (Write), hai tín hiệu này thông thường cũng hoạt động logic tích cực thấp. Ngoài ra tùy theo vi xử lý còn có thêm các tín hiệu khác như ALE, PSEN, 3) Các chân dùng cho giao tiếp Bộ nhớ (và hầuhết các thiết bị ngoại vi) có các đuờng diều khiển đặc biệt dể giao tiếp với vi xử lý • /CS hoặc/CE(Chip Select hoặc Chip Enable) - Được lái từ mạch giải mã địa chỉ của vi sử lý. - Thường là chân tích cực mức thấp. - Khi được xác định thì chip/ ngoại vi được chọn. • /OE (Output Enable=cho phép xuất) hay /RD (với RAM) - Thuờng thấy trong các bộ nhớ - Khi nó tích cực (thuờng là tích cựcthấp) thì ngõ ra ở trạng thái hi-Z. - Đôi khi nó duợcxemnhu /RD trong RAM. • /WR (Write Enable=cho phép ghi) - Được lái bởi chân /WR của vi xử lý. - III) Thiết kế mạch giải mã Yêu cầu đặt ra là thiết kế mạch giải mã địa chỉ cho bộ nhớ RAM 8K từ chip nhớ RAM 1k x 4bit. Do mỗi RAM 1k x 4bit có dung lượng bộ nhớ là 4k nên ta cần dùng 2 RAM 1k x 4bit để tạo bộ nhớ. Vi xử lý 8086/8088 có 20 đường địa chỉ (A19-A0). suy ra nó quả lý tối đa 2^20 (bytes)=1MB bộ nhớ, có địa chỉ từ 00000H-FFFFFH. Ở đây ta dùng 11 đường địa chỉ (A10 – A0) để quản lý bộ nhớ RAM 8K. Ta dùng IC 74LS139 để chia ra 4 tuyến địa chỉ ở các đầu ra tương ứng (Y0-Y3). Mỗi tuyến điều khiển 1 RAM 1k x 4bit. Tuy nhiên ta chỉ sử dụng 2 trong 4 tuyến đó. Giả sử 2 chip nhớ 1K x 4bit phải đặt ở vị trí có địa chỉ cao nhất => ta chọn giá trị đường địa chỉ A11=1, vậy các đường ra sẽ chọn là Y2 và Y3 để gắn vào tín hiệu điều khiển của 2 chip nhớ 1K x 4bit đó. Các chân địa chỉ A12 – A19 không dùng đến được nối với cổng AND rồi qua cổng NOT làm tín hiệu Enable cho ic giải mã. Vì đây là mạch giải mã đơn giải, chỉ dùng 2 RAM 1k x 4bit nên không nhất thiết phải lập bảng bộ nhớ IO. Mạch giải mã được thiết kế trên phần mềm Proteus. . máy tính. Nó luu trữ các lệnh và dữ liệu mà CPU dùng thuờng xuyên khi hoạt dộng. - Bộ nhớ khối (Mass Memory): Còn gọi là bộ nhớ phụ, nó chứa một luợng thông tin rất lớn ở bên ngoài máy tính. Tốc