For current hardware, the answer would be "typically no". Modern computers have so many address lines that there is little chance that more memory could be needed than was possible to add within the constraints of the address bus.
With microcontrollers and older computers, though, this is not the case. By means of a technology called "bank switching", it is possible to have more memory available than the address lines can support. In the days of the Z80, a chip with 16 address lines and 65,536 maximum bytes of memory, computers were available with three 48K memory banks in addition to the native 64K bank, for a total of 212,992 bytes of addressable memory. A standard called LIMM EMS was available in the days of the IBM PC/AT that would allow the same sort of additional memory. The way these systems work is by defining a window in the standard address space, and then allowing the processor to select the extended memory that it wants to see in that window. Selecting the memory is typically "out of band", meaning that the processor writes a page number to an I/O port, for instance, and then that page of memory becomes visible in the defined window.
16KB
You can address 214 or 16384 different locations with 14 address lines.
Usually high speed SRAM with CAM (content addressable memory) line address tags.
2N
A 16 bit address bus can select 65536 locations.
The differences among direct mapping and set-associative mapping :Direct mapping : Each line in main memory maps onto a single cache line.Set-associative : Each line in main memory maps onto a small (collection) set of cache line.Direct mapping : A memory block is mapped into a unique cache line, depending on the memory address of the respective block.Set-associative : A memory block is mapped into any of the line of a set. The set is determined by the memory address, but the line inside the set can be any one.dont knowyet
2^14 memory locations. In general for n-bit address bus, its 2^n
The differences among direct mapping and set-associative mapping :Direct mapping : Each line in main memory maps onto a single cache line.Set-associative : Each line in main memory maps onto a small (collection) set of cache line.Direct mapping : A memory block is mapped into a unique cache line, depending on the memory address of the respective block.Set-associative : A memory block is mapped into any of the line of a set. The set is determined by the memory address, but the line inside the set can be any one.dont knowyet
32 bit address line can access 4GB of memory. As 2^10 -> 1KB; 2^20 -> 2MB; 2^30 -> 1GB and so on.... 32 bit gives (2^30) * (2^2) = 1GB * 4 = 4GB;
When CPU needs to access a memory location for read or write, it places an address on the address bus. In case of Read, data is meant to be read into Memory Data Register (MDR) and in case of Write, the data (to be written to memory) is put in the MDR.After that CPU issues the Read or Write signal.However, CPU needs to know when the desired memory function (Read or Write) has been completed..This line back to the CPU saying that the operation is complete is sometimes called memory function complete (MFC).In the meanwhile, the instruction or step that is executed by the CPU is known as Wait for Memory Function Completed (WMFC)To summarize:To read (if you are a CPU): Put the desired memory address in the MAR.Assert the Read control line.Wait for the MFC line to be set to 1 by the main memory unit. (Or wait for the appropriate amount of time, if there's no MFC line with your particular main memory unit you are using (rare these days).)Get the data out of the MDR.To write (again, if you are a CPU): Put the desired memory address in the MAR and put the desired data in the MDR.Assert the Write control line.Wait for the MFC line to be set to 1 by the main memory unit
When CPU needs to access a memory location for read or write, it places an address on the address bus. In case of Read, data is meant to be read into Memory Data Register (MDR) and in case of Write, the data (to be written to memory) is put in the MDR.After that CPU issues the Read or Write signal.However, CPU needs to know when the desired memory function (Read or Write) has been completed..This line back to the CPU saying that the operation is complete is sometimes called memory function complete (MFC).In the meanwhile, the instruction or step that is executed by the CPU is known as Wait for Memory Function Completed (WMFC)To summarize:To read (if you are a CPU): Put the desired memory address in the MAR.Assert the Read control line.Wait for the MFC line to be set to 1 by the main memory unit. (Or wait for the appropriate amount of time, if there's no MFC line with your particular main memory unit you are using (rare these days).)Get the data out of the MDR.To write (again, if you are a CPU): Put the desired memory address in the MAR and put the desired data in the MDR.Assert the Write control line.Wait for the MFC line to be set to 1 by the main memory unit
The memory used to hold the address of the data stored in a cache is typically referred to as the "tag" memory. Each cache line has an associated tag that identifies the specific block of main memory that the data corresponds to. When the processor checks the cache for data, it compares the requested address against the tags in the cache to determine if the data is present (cache hit) or not (cache miss).