Methods and apparatus for smart memory interface
One embodiment relates to a memory structure that includes a bank group and a port emulation circuit module. The bank group includes a plurality of memory banks, each memory bank having one read port and one write port. The port emulation circuit module provides a group read/write port and a group read port for the bank group. Another embodiment relates to a port emulation circuit module. The port emulation circuit module includes a port emulation control circuit that receives control signals including a first address for a group read/write port and a second address for a group read port, a first data path circuit for the group read/write port, and a second data path circuit for the group read port, wherein the second data path circuit outputs a second read data. Other embodiments and features are also disclosed.
1. A memory structure comprising:
a bank group comprising a plurality of memory banks, each memory bank having one read port and one write port; and
a port emulation circuit module that provides a group read/write port and a group read port for the bank group wherein the port emulation control circuit includes a command decode path circuit,
wherein the port emulation circuit module reconstructs data requested by a data read command received from the group read/write port when there is a bank conflict with a data read command received from the group read port.
2. The memory structure of claim 1 , wherein the port emulation circuit module comprises:
a port emulation control circuit that receives control signals including a first address for the group read/write port and a second address for the group read port.
3. The memory structure of claim 1 , wherein the port emulation control circuit includes a command decode path circuit.
4. The memory structure of claim 3 , wherein the port emulation circuit module further comprises:
a first data path circuit for the group read/write port, wherein the first data path circuit receives write data and outputs first read data; and
a second data path circuit for the group read port, wherein the second data path circuit outputs second read data.
5. The memory structure of claim 4 , wherein the first data path circuit includes circuitry for atomic operations.
6. The memory structure of claim 5 , wherein the circuitry for atomic operations includes binary adder logic, Boolean operation logic, compare logic, and data swap logic.
7. The memory structure of claim 1 , wherein the data requested by the data read command received from the group read/write port is reconstructed by reading data from a same address in all other memory banks in the bank group.
8. The memory structure of claim 1 , wherein, after receiving a data write command from the group read/write port to write new data to a targeted entry, the port emulation circuit module reads previous data of the targeted entry.
9. The memory structure of claim 8 , wherein, after receiving the data write command from the group read/write port to write the new data to the targeted entry, the port emulation circuit module also calculates an updated parity and writes the updated parity into a corresponding entry in a parity bank of the bank group.
10. A port emulation circuit module, the circuit module comprising:
a port emulation control circuit that receives control signals including a first address for a group read/write port and a second address for a group read port;
a first data path circuit for the group read/write port, wherein the first data path circuit receives write data and outputs first read data; and
a second data path circuit for the group read port, wherein the second data path circuit outputs a second read data,
wherein the port emulation circuit module reconstructs data requested by a data read command received from the group read/write port when there is a bank conflict with a data read command received from the group read port.
11. The circuit module of claim 10 , wherein the port emulation control circuit includes a command decode path circuit.
12. The circuit module of claim 10 , wherein the first data path circuit includes circuitry for atomic operations.
13. The circuit module of claim 12 , wherein the circuitry for atomic operations includes binary adder logic, Boolean operation logic, compare logic, and data swap logic.
14. The circuit module of claim 10 , wherein the data requested by the data read command received from the group read/write port is reconstructed by reading data from a same address in all other memory banks in the bank group.
15. The circuit module of claim 10 , wherein, after receiving a data write command from the group read/write port to write new data to a targeted entry, the port emulation circuit module reads previous data of the targeted entry.
16. The circuit module of claim 15 , wherein, after receiving the data write command from the group read/write port to write the new data to the targeted entry, the port emulation circuit module also calculates an updated parity and writes the updated parity into a corresponding entry in a parity bank of the bank group.
17. A port emulation circuit module, the circuit module comprising:
a port emulation control circuit that receives control signals including a first address for a group read/write port and a second address for a group read port;
a first data path circuit for the group read/write port, wherein the first data path circuit receives write data and outputs first read data; and
a second data path circuit for the group read port, wherein the second data path circuit outputs a second read data,
wherein the first data path circuit includes circuitry for atomic operations, and
wherein the circuitry for atomic operations includes binary adder logic, Boolean operation logic, compare logic, and data swap logic.
18. A port emulation circuit module, the circuit module comprising:
a port emulation control circuit that receives control signals including a first address for a group read/write port and a second address for a group read port;
a first data path circuit for the group read/write port, wherein the first data path circuit receives write data and outputs first read data; and
a second data path circuit for the group read port, wherein the second data path circuit outputs a second read data,
wherein, after receiving a data write command from the group read/write port to write new data to a targeted entry, the port emulation circuit module reads previous data of the targeted entry.
19. The circuit module of claim 18 , wherein, after receiving the data write command from the group read/write port to write the new data to the targeted entry, the port emulation circuit module also calculates an updated parity and writes the updated parity into a corresponding entry in a parity bank of the bank group.