I'm currently attempting to solve the following homework question:
Assume that one 16-bit and two 8-bit microprocessors are to be interfaced to a system bus. The following details are given: 8pts All microprocessors have the hardware features necessary for any type of data transfer: programmed I/O, interrupt-driven I/O, and DMA. All microprocessors have a 16-bit address bus. Two memory boards, each of 64-Kbytes capacity, are interfaced with the bus. The designer wishes to use a shared memory that is as large as possible. The system bus supports a maximum of four interrupt lines and one DMA line. Make any other assumptions necessary, and: Give the system bus specifications in terms of number and types of lines.
We didn't actually cover this content in class, so I'm a bit lost. My first instinct is to use 3 interrupt lines to address the 6 combinations of peripherals and memory boards (ceil(log2(6)) = 3
lines needed), and use interrupt-driven I/O for requests. Is this a viable option?
Additionally, is it possible to address the full 64kb * 2 = 128kb
shared memory? Since the processors can only support 16-bit address lines, one would assume that the max size of the address space is 2^16 = 64kb
, but that's only half of the total memory space. Is it possible to address all 128kb, and, if so, how?
Thanks in advance.