I have learned that initially PCs had 8-bit memory architecture and that 1 byte (i.e. 8 bits) was the "basic" memory unit because 8 bits was exactly the memory space required to encode any of the original ASCII 128 characters ($2^7=128$, with the last 8th bit used for parity checking).
My understanding of this is that the 8-bit RAM architecture meant that every byte had a unique memory address (so it was possible to uniquely address each byte, but it was not possible to address the bits inside the bytes).
My understanding is that when we code in something like C or C++, the pointers point to the address in the RAM (so in the 8-bit architecture, we could point to any one Byte in the memory).
Now, how does the CPU architecture come into the picture? I understand that the CPU bit-width determines the maximum number of bits that the CPU is able to process in "one chunk": but does this need to exactly correspond to the bit-width of the RAM?
We now live in a 64-bit "architecture" era. My understanding is that this refers to the CPUs (not the RAMs).
My questions:
Could a 64-bit CPU work with 32-bit RAM? (and how would this work? Please give an example)
When we have a 32-bit RAM (or a 64-bit RAM), does it mean that each memory address points to a 32-bit (or a 64-bit) wide memory location, and we cannot point to any lesser-wide part of the memory?
Could a 32-bit processor work with a 64-bit RAM (and how would this work?)