KR20100100395A - 복수의 프로세서를 포함하는 메모리 시스템 - Google Patents

복수의 프로세서를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR20100100395A
KR20100100395A KR1020090019267A KR20090019267A KR20100100395A KR 20100100395 A KR20100100395 A KR 20100100395A KR 1020090019267 A KR1020090019267 A KR 1020090019267A KR 20090019267 A KR20090019267 A KR 20090019267A KR 20100100395 A KR20100100395 A KR 20100100395A
Authority
KR
South Korea
Prior art keywords
bank
address
banks
processor
interleaving
Prior art date
Application number
KR1020090019267A
Other languages
English (en)
Inventor
임의철
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020090019267A priority Critical patent/KR20100100395A/ko
Priority to US12/657,508 priority patent/US20100228923A1/en
Publication of KR20100100395A publication Critical patent/KR20100100395A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Dram (AREA)

Abstract

본 발명은 메모리 시스템에 관한 것으로, 구체적으로는, 복수의 프로세서를 포함하는 메모리 시스템에 관한 것이다.
본 발명에 따른 메모리 시스템은 제 1 및 제 2 프로세서; 상기 제 1 또는 제 2 프로세서 각각에 할당되는 하나 또는 2 이상의 뱅크들을 포함하는 저장 장치; 및 하나의 프로세서에 할당되는 뱅크가 복수 개인 경우, 상기 복수의 뱅크들이 인터리빙 방식으로 액세스 되도록 상기 저장 장치를 제어하는 제어 장치를 포함한다.
본 발명에 따르면 메모리 시스템의 성능 및 전력 효율을 향상시키는 것이 가능하다.

Description

복수의 프로세서를 포함하는 메모리 시스템{MEMORY SYSTEM HAVING MULTIPLE PROCESSORS}
본 발명은 메모리 시스템에 관한 것으로, 구체적으로는, 복수의 프로세서를 포함하는 메모리 시스템에 관한 것이다.
메모리 시스템은 두 개 이상의 프로세서를 포함할 수 있다. 예를 들면, 모바일 시스템(mobile system)은 모뎀(modem)과 응용 프로세서(Application Processor; AP) (혹은 멀티미디어 코프로세서)를 포함한다. 두 개 이상의 프로세서를 포함하는 메모리 시스템은 각각의 프로세서를 구동하기 위해 최소한 두 개 이상의 메모리를 필요로 한다.
위의 예에서, 모뎀은 코드 저장을 위한 노어 플래시 메모리(NOR flash memory)와 코드 실행을 위한 디램(DRAM)을 동반한다. 그리고 응용 프로세서(AP)는 코드 및 데이터 저장을 위한 낸드 플래시 메모리(NAND flash memory)와 코드 실행을 위한 디램(DRAM)을 동반한다. 모뎀과 응용 프로세서는 UART(Universal Asynchronous Receiver Transmitter), SPI(Serial Peripheral Interface), SRAM 인터페이스 등을 통해 코드 및 데이터를 주고 받는다.
그러나 종래의 메모리 시스템은 각각의 프로세서마다 코드 실행을 위한 디램(DRAM)이 요구된다. 따라서, 메모리 시스템 내에 포함되는 메모리의 수가 많고 비용이 많이 드는 문제점이 있다. 이러한 문제점을 극복하기 위해 듀얼 포트 메모리(dual port memory)를 사용하는 방법이 연구되고 있다. 이 방법은 종래의 모뎀과 응용 프로세서에 각각 사용하던 디램을 하나의 듀얼 포트 메모리로 대체하는 것이다. 그러나, 듀얼 포트 메모리의 데이터 전송 속도와 전력 소모는 여전히 문제된다.
본 발명의 목적은 각각의 뱅크에 적용되는 어드레싱 방법을 선택적으로 적용함으로써 성능 및 전력 효율이 향상된 메모리 시스템을 제공하는 데 있다.
본 발명에 따른 메모리 시스템은 제 1 및 제 2 프로세서; 상기 제 1 또는 제 2 프로세서 각각에 할당되는 하나 또는 2 이상의 뱅크들을 포함하는 저장 장치; 및 하나의 프로세서에 할당되는 뱅크가 복수 개인 경우, 상기 복수의 뱅크들이 인터리빙 방식으로 액세스 되도록 상기 저장 장치를 제어하는 제어 장치를 포함한다.
실시 예로서, 상기 제어 장치는 서로 다른 프로세서에 할당되는 하나 또는 2 이상의 뱅크들이 인터리빙 방식으로 액세스 되지 않도록 상기 저장 장치를 제어한다. 상기 제어 장치는 서로 다른 프로세서에 할당되는 하나 또는 2 이상의 뱅크들이 인터리빙 방식으로 액세스 되지 않도록 리니어 어드레싱을 이용하여 상기 저장 장치를 제어한다. 상기 제어 장치는 리니어 어드레싱을 위한 어드레스를 상기 저장 장치에 제공하고, 상기 리니어 어드레싱을 위한 어드레스는 최상위 비트부터 뱅크 어드레스, 행 어드레스, 그리고 열 어드레스 순서이다.
다른 실시 예로서, 상기 제어 장치는 하나의 프로세서에 할당되는 상기 복수의 뱅크들 전부 또는 일부가 인터리빙 방식으로 액세스 되도록 상기 저장 장치를 제어한다. 상기 제어 장치는 상기 인터리빙 방식에 의해 복수의 뱅크들의 행이 동시에 활성화되도록 상기 저장 장치를 제어한다. 상기 제어 장치는 상기 인터리빙을 위한 어드레스를 상기 저장 장치에 제공하고, 상기 인터리빙을 위한 어드레스는 최상위 비트부터 행 어드레스, 뱅크 어드레스, 그리고 열 어드레스 순서이다.
다른 실시 예로서, 상기 제어 장치는 레지스터를 더 포함하고, 상기 레지스터는 각각의 뱅크에 적용될 어드레싱 모드를 저장한다. 상기 레지스터는 뱅크들의 개수, 각 뱅크의 크기를 더 저장한다.
다른 실시 예로서, 상기 저장 장치는 상기 제 1 프로세서 및 상기 제 2 프로세서 모두에 할당되는 뱅크를 더 포함한다.
다른 실시 예로서, 상기 저장 장치는 제 1 포트 및 제 2 포트를 더 포함하고, 상기 제 1 포트는 상기 제 1 프로세서에 연결되고, 상기 제 2 포트는 상기 제 2 포트에 연결된다.
본 발명에 따르면 메모리 시스템의 성능 및 전력 효율을 향상시키는 것이 가능하다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
아래에서 메모리 시스템이 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다, 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
듀얼 포트 메모리는 두 개의 프로세서에 의해 접근(access)될 수 있도록 공유 메모리(shared memory)를 갖는다. 두 개의 프로세서는 각각 다른 포트를 통해 공유 메모리에 접근할 수 있다. 두 개의 프로세서는 서로 다른 포트를 통해 듀얼 포트 메모리에 대한 읽기 및 쓰기 동작을 수행할 수 있다.
도 1은 일반적인 듀얼 포트 메모리를 보여주는 블록도이다. 도 1을 참조하면, 듀얼 포트 메모리(10)는 외부 프로세서(도시되지 않음)와 연결되는 두 개의 포트(12, 14), 두 개의 포트(12, 14)를 통해 입출력되는 신호들을 제어하는 제어부(16), 그리고 제어부(16)로부터 입출력되는 데이터를 저장하거나 독출하는 메모 리부(18)를 포함한다.
각각의 포트(12, 14)는 외부 프로세서로부터 인가되는 칩 인에이블 신호들(
Figure 112009013870349-PAT00001
,
Figure 112009013870349-PAT00002
), 읽기 및 쓰기 신호들(
Figure 112009013870349-PAT00003
,
Figure 112009013870349-PAT00004
), 어드레스들(
Figure 112009013870349-PAT00005
,
Figure 112009013870349-PAT00006
)을 입력받아 제어부(16)로 전달한다. 제어부(16)는 어드레스들(
Figure 112009013870349-PAT00007
,
Figure 112009013870349-PAT00008
)를 입력받고, 데이터(
Figure 112009013870349-PAT00009
,
Figure 112009013870349-PAT00010
)를 메모리부(18)에 저장하거나 메모리부(18)로부터 독출한다.
종래의 메모리 시스템에 의하면, 모뎀의 코드를 실행하기 위한 디램과 응용 프로세서의 코드를 실행하기 위한 디램이 각각 요구된다. 즉, 종래의 복수의 프로세서를 사용하는 메모리 시스템은 각각의 프로세서의 코드를 실행하기 위한 메모리를 별도로 요구한다. 그러나 각각의 프로세서마다 코드 실행용 메모리를 별도로 두는 것은 메모리 시스템의 면적, 비용 등의 측면에서 비효율적이다. 또한 메모리 시스템이 점점 복잡화, 고집적화, 소형화됨에 따라 메모리의 수와 비용을 줄이고자 하는 추세에 부합되지 못한다.
도 2는 본 발명에 따른 메모리 시스템을 보여주는 블록도이다. 도 2를 참조하면, 메모리 시스템(100)은 저장 장치(110), 메모리 컨트롤러, 제 1 프로세서, 그리고 제 2 프로세서를 포함한다. 본 발명에 따른 메모리 시스템(100)은 휴대 전화기, PDA 등 모바일 시스템(mobile system)에 효율적으로 사용될 수 있다.
저장 장치(110)는 복수의 메모리 뱅크들(Bank1~Bank4)을 포함한다. 저장 장치(110)는 두 개의 포트들(Port1, Port2)을 통해 프로세서들에 연결된다. 예를 들 어, 제 1 메모리 뱅크(Bank 1)는 제 1 프로세서(Processor 1)에 할당된다. 따라서, 제 1 프로세서(Processor 1)는 처리될/처리된 데이터를 제 1 메모리 뱅크(Bank 1)에 저장할 수 있다. 제 2 메모리 뱅크(Bank 2)는 제 1 프로세서(Processor 1) 및 제 2 프로세서(Processor 2)에 할당된다. 따라서, 제 1 프로세서(Processor 1) 및 제 2 프로세서(Processor 2)는 처리될/처리된 데이터를 제 2 메모리 뱅크(Bank 2)에 저장할 수 있다. 제 3 및 제 4 메모리 뱅크(Bank 3, Bank 4)는 제 2 프로세서(Processor 2)에 할당된다.
제 1 포트(Port 1)는 제 1 프로세서(Processor 1)(120)와 연결되고, 제 2 포트(Port 2)는 제 2 프로세서(Processor 2)와 연결된다. 예를 들어, 제 1 프로세서(Processor 1)는 모뎀이고, 제 2 프로세서(Processor 2)는 응용 프로세서일 수 있다. 저장 장치(110)는 SDRAM 등으로 구현될 수 있다.
상술한 바와 같이, 각각의 뱅크는 서로 다른 프로세서에 할당된다. 따라서, 액세스를 위한 어드레싱 적용시 뱅크를 분리할 필요가 있다. 결국, 뱅크를 각각의 프로세서에 할당하기 위해서 리니어 어드레싱(linear addressing) 방법이 사용된다.
도 3은 리니어 어드레싱 방법을 설명하기 위한 도면이다. 도 3을 참조하면, 예시적으로 두 개의 뱅크(Bank1, Bank2)가 도시된다. 또한, 각각의 뱅크는 4개의 행 및 4개의 열을 포함한다. 단, 본 발명의 범위는 이에 한정되지 않는다. 각각의 뱅크는 임의의 개수의 행과 열을 포함할 수 있다. 행과 열의 교차점에는 메모리 셀이 배치된다.
리니어 어드레싱 방법에 있어서 메모리 뱅크들이 순차적으로 액세스된다. 즉, 제 1 메모리 뱅크(Bank 1)의 액세스 후에 제 2 메모리 뱅크(Bank 2)가 액세스 된다. 리니어 어드레싱 방법은 BRC(Bank address-Row address-Column address) 어드레싱 방법으로도 불릴 수 있다.
BRC 어드레싱 방법에 있어서 어드레스의 순서가 상위 비트부터 뱅크 어드레스-행 어드레스-열 어드레스로 정해진다. 예를 들어 '00110' 어드레스의 경우, '0'이 뱅크 어드레스, '01'이 행 어드레스, 그리고 '10'이 열 어드레스가 된다. 도시된 바와 같이, '00110' 어드레스는 제 1 뱅크(Bank1)의 제 2 행(Row2)과 제 3 열(Col3)의 교차점에 위치한 메모리 셀을 지시한다.
리니어 어드레싱 방법에 있어서, 어드레스의 순차적 증가에 의해 먼저 열 어드레스가 증가한다. 열 어드레스는 최하위 비트(least significant bit)에 해당하기 때문이다. 열 어드레스가 끝까지 증가하면 그 다음에 행 어드레스가 증가한다. 예를 들어 '00011' 어드레스의 다음 어드레스는 '00100'이 된다. 어드레스 증가에 의해 행 어드레스가 하나 증가하고 열 어드레스가 초기화된다. 결국, 액세스되는 행과 열이 변경된다. 이는 도 3의 (a)에 도시되어 있다.
행 어드레스가 끝까지 증가하면 그 다음에 뱅크 어드레스가 변경된다. 예를 들어 '01111' 어드레스의 다음 어드레스는 '10000'이 된다. 이는 뱅크 어드레스가 하나 증가하고 행 어드레스 및 열 어드레스가 초기화됨을 의미한다. 결국, 액세스되는 뱅크, 행, 그리고 열이 변경된다. 이는 도 3의 (b)에 도시되어 있다.
상술한 방법에 의해, 메모리 뱅크가 순차적으로 액세스된다. 리니어 어드레 싱 방법에 있어서, 한번에 하나의 뱅크의 행만이 활성화되기 때문에 데이터 전송 속도가 제한된다. 이는 메모리 시스템의 성능을 저하시킬 수 있다. 반면에, 한번에 하나의 뱅크의 행만이 활성화되기 때문에 행의 활성화에 필요한 전력이 감소된다. 이는 메모리 시스템의 전력 효율을 향상시킬 수 있다. 결국, 리니어 어드레싱 방법은 성능 측면에서의 단점과 전력 측면에서의 장점을 모두 가진다.
또한, 도 2를 참조하여 상술한 바와 같이, 제 3 및 제 4 뱅크(Bank3, Bank4)는 제 2 프로세서(Processor 2)에 할당된다. 따라서, 액세스를 위한 어드레싱시 제 3 뱅크(Bank3)와 제 4 뱅크(Bank4)를 분리할 필요가 없다. 오히려, 제 3 뱅크(Bank3)와 제 4 뱅크(Bank4)를 동시에 액세스함에 따라 데이터 전송 속도가 향상된다. 결국, 제 3 및 제 4 뱅크(Bank3, Bank4)를 동시에 액세스하기 위해서 인터리빙 어드레싱 방법이 사용된다.
도 4는 인터리빙 어드레싱 방법을 설명하기 위한 도면이다. 도 4를 참조하면, 예시적으로 두 개의 뱅크(Bank1, Bank2)가 도시된다. 각각의 뱅크는 4개의 행 및 4개의 열을 포함할 수 있다. 단, 본 발명의 범위는 이에 한정되지 않는다. 각각의 뱅크는 임의의 개수의 행과 열을 포함할 수 있다. 행과 열의 교차점에는 메모리 셀이 배치된다.
인터리빙 어드레싱 방법에 있어서 메모리 뱅크들의 행이 동시에 액세스된다. 즉, 제 1 메모리 뱅크(Bank 1) 및 제 2 메모리 뱅크(Bank 2)의 제 1 행이 액세스 된 후에 제 1 메모리 뱅크(Bank 1) 및 제 2 메모리 뱅크(Bank 2)의 제 2 행이 액세스 된다. 리니어 어드레싱 방법은 RBC 어드레싱 방법으로도 불릴 수 있다.
RBC(Row address-Bank address-Column address) 어드레싱 방법에 있어서 어드레스의 순서가 상위 비트부터 행 어드레스-뱅크 어드레스-열 어드레스로 정해진다. 예를 들어 어드레스가 '01010'이라고 하면, '01'이 행 어드레스, '0'이 뱅크 어드레스, 그리고 '10'이 열 어드레스가 된다. 도 3을 참조하면, '01010' 어드레스는 제 1 뱅크(Bank1)의 제 2 행(Row2)과 제 3 열(Col3)의 교차점에 위치한 메모리 셀을 지시한다.
인터리빙 어드레싱 방법에 있어서, 어드레스의 순차적 증가에 의해 먼저 열 어드레스가 증가한다. 열 어드레스는 최하위 비트(least significant bit)에 해당하기 때문이다. 열 어드레스가 끝까지 증가하면 뱅크 어드레스가 증가된다. 예를 들어 '00011' 어드레스의 다음 어드레스는 '00100'이 된다. 어드레스 증가에 따라 뱅크 어드레스가 하나 증가하고 열 어드레스가 초기화된다. 결국, 액세스되는 뱅크와 열이 변경된다. 이는 도 4의 (a)에 도시되어 있다.
열 어드레스가 다시 끝까지 증가하면 뱅크 어드레스가 변경된다. 예를 들어 '00111' 어드레스의 다음 어드레스는 '01000'이 된다. 이는 행 어드레스가 하나 증가하고 뱅크 어드레스 및 열 어드레스가 초기화됨을 의미한다. 결국, 액세스되는 뱅크, 행, 그리고 열이 변경된다. 이는 도 4의 (b)에 도시되어 있다.
상술한 방법에 의해, 두 개의 메모리 뱅크들의 행이 동시에 액세스된다. 인터리빙 어드레싱 방법에 있어서, 한번에 두 개의 뱅크의 행들이 활성화되기 때문에 데이터 전송 속도가 향상된다. 결국, 메모리 시스템의 성능이 향상될 수 있다. 반면에, 한번에 두 개의 뱅크들의 행들이 활성화되기 때문에 행 활성화에 필요한 전 력이 증가한다. 이는 메모리 시스템의 전력 소모를 증가시킬 수 있다. 결국, 인터리빙 어드레싱 방법은 성능 측면에서의 장점과 전력 측면에서의 단점을 가진다.
본 발명에 있어서, 각각의 뱅크마다 서로 다른 어드레싱 방법이 적용될 수 있다. 예를 들어, 제 1 프로세서(Processor 1)에 할당되는 제 1 뱅크에는 리니어 어드레싱 방법이 적용되고, 제 2 프로세서(Processor 2)에 할당되는 제 3 및 제 4 뱅크에는 인터리빙 어드레싱 방법이 적용될 수 있다.
도 2의 메모리 컨트롤러(120)는 레지스터(121)를 포함한다. 메모리 컨트롤러(120)는 레지스터(121)를 참조하여 각각의 뱅크에 적용될 어드레싱 방법을 결정할 수 있다. 레지스터(121)의 구조는 후술될 도면을 참조하여 자세히 설명될 것이다.
도 5는 도 2에 도시된 레지스터의 구조를 보여주는 도면이다. 도 5(a)를 참조하면, 레지스터(121)는 뱅크의 수(number of banks), 각각의 뱅크의 크기(size of bank), 그리고 각각의 뱅크의 어드레스 모드(address mode for bank)를 저장한다. 뱅크의 수는 2, 4, 그리고 8 등이 될 수 있다. 뱅크의 크기는 128Mb, 256Mb, 그리고 512Mb 등이 될 수 있다. 어드레스 모드는 리니어 어드레싱(linear addressing), 부분적 2 뱅크 인터리빙(partial 2 bank interleaving), 부분적 4 뱅크 인터리빙(partial 4 bank interleaving), 그리고 전 뱅크 인터리빙(full bank interleaving) 등을 포함할 수 있다.
도 5(b)를 참조하면, 리니어 어드레싱(linear addressing)은 모든 뱅크를 순차적으로 액세스한다. 리니어 어드레싱(linear addressing)은 BRC 어드레싱으로 불 릴 수 있다. 상술한 바와 같이, BRC 어드레싱 방법에 있어서 어드레스의 순서가 상위 비트부터 뱅크 어드레스-행 어드레스-열 어드레스로 정해진다.
리니어 어드레싱(linear addressing) 방법에 있어서, 어드레스의 순차적 증가에 의해 먼저 열 어드레스가 증가한다. 열 어드레스는 최하위 비트(least significant bit)에 해당하기 때문이다. 열 어드레스가 끝까지 증가하면 그 다음에 행 어드레스가 증가한다. 행 어드레스가 끝까지 증가하면 그 다음에 뱅크 어드레스가 증가한다. 이와 같은 방법을 통해, 뱅크가 순차적으로 액세스될 수 있다.
부분적 2 뱅크 인터리빙(partial 2 bank interleaving)은 2개의 뱅크들의 행들을 동시에 액세스한다. 부분적 2 뱅크 인터리빙(partial 2 bank interleaving)의 일 예로서, B2B1RB0C 어드레싱 방법이 있다. B2B1RB0C 어드레싱 방법에 있어서, 어드레스의 순서가 상위 비트부터 제 1 뱅크 어드레스-제 2 뱅크 어드레스-행 어드레스-제 3 뱅크 어드레스-열 어드레스로 정해진다. 그리고, 제 1 내지 제 3 뱅크 어드레스에 의해 하나의 뱅크가 지시된다.
예를 들어 '0110001' 어드레스의 경우, 제 1 뱅크 어드레스는 '0', 제 2 뱅크 어드레스는 '1', 그리고, 제 3 뱅크 어드레스는 '0'이다. 결국 뱅크 어드레스는 '010'이 된다. 이는 3 번째 뱅크를 지시한다. 행 어드레스는 '10'이고, 열 어드레스는 '01'이다. 결국, '0110001' 어드레스는 제 3 뱅크(Bank3)의 제 3 행(Row3), 제 1 열(Col1)의 교차점에 위치한 메모리 셀을 지시한다.
부분적 2 뱅크 인터리빙(partial 2 bank interleaving) 방법에 있어서, 어드 레스의 증가에 의해 먼저 열 어드레스가 증가한다. 열 어드레스는 최하위 비트(least significant bit)에 해당하기 때문이다. 열 어드레스가 끝까지 증가하면 그 다음에 제 3 뱅크 어드레스가 증가한다. 예를 들어 '0000011' 어드레스의 다음 어드레스는 '0000100'이 된다. 이는 뱅크 어드레스가 하나 증가하고 열 어드레스가 초기화됨을 의미한다. 결국, 액세스되는 뱅크와 열이 변경된다.
열 어드레스가 다시 끝까지 증가하면 뱅크 어드레스가 변경된다. 예를 들어 '0000111' 어드레스의 다음 어드레스는 '0001000'이 된다. 이는 행 어드레스가 하나 증가하고 뱅크 어드레스 및 열 어드레스가 초기화됨을 의미한다. 결국, 액세스되는 뱅크, 행, 그리고 열이 변경된다.
행 어드레스가 끝까지 증가하면 제 2 뱅크 어드레스가 변경된다. 예를 들어 '0011111' 어드레스의 다음 어드레스는 '0100000'이 된다. 이는 뱅크 어드레스가 하나 증가하고 행 어드레스 및 열 어드레스가 초기화됨을 의미한다. 결국, 액세스되는 뱅크, 행, 그리고 열이 변경된다.
위의 예에서, 3 비트의 뱅크 어드레스가 사용되었기 때문에 8개의 뱅크를 지정하는 것이 가능하다. 또한, 부분적 2 뱅크 인터리빙(partial 2 bank interleaving)을 통해, 8개의 뱅크들 중 2개의 뱅크들에 대한 인터리빙 액세스를 수행하는 것이 가능하다. 결국, 부분적인 인터리빙 액세스를 통해 성능 및 전력 효율을 향상시킬 수 있다.
다시 도 5(b)를 참조하면, 부분적 4 뱅크 인터리빙(partial 4 bank interleaving)은 4개의 뱅크들의 행들을 동시에 액세스한다. 부분적 4 뱅크 인터리 빙(partial 4 bank interleaving)의 일 예로서, B2RB1B0C 어드레싱 방법이 있다. B2RB1B0C 어드레싱 방법에 있어서, 어드레스의 순서가 상위 비트부터 제 1 뱅크 어드레스-행 어드레스-제 2 뱅크 어드레스-제 3 뱅크 어드레스-열 어드레스로 정해진다.
제 1 내지 제 3 뱅크 어드레스에 의해 하나의 뱅크가 지시된다. 예를 들어 '0101001' 어드레스의 경우, 제 1 뱅크 어드레스는 '0', 제 2 뱅크 어드레스는 '1', 그리고, 제 3 뱅크 어드레스는 '0'이다. 결국 뱅크 어드레스는 '010'이 된다. 이는 3 번째 뱅크를 지시한다. 행 어드레스는 '10'이고, 열 어드레스는 '01'이다. 결국, '0101001' 어드레스는 제 3 뱅크(Bank3)의 제 3 행(Row3), 제 1 열(Col1)의 교차점에 위치한 메모리 셀을 지시한다.
부분적 4 뱅크 인터리빙(partial 4 bank interleaving) 방법에 있어서, 어드레스의 증가에 의해 먼저 열 어드레스가 증가한다. 열 어드레스는 최하위 비트(least significant bit)에 해당하기 때문이다. 열 어드레스가 끝까지 증가하면 그 다음에 제 3 뱅크 어드레스가 증가한다. 예를 들어 '0000011' 어드레스의 다음 어드레스는 '0000100'이 된다. 이는 뱅크 어드레스가 하나 증가하고 열 어드레스가 초기화됨을 의미한다. 결국, 액세스되는 뱅크와 열이 변경된다.
열 어드레스가 다시 끝까지 증가하면 뱅크 어드레스가 변경된다. 예를 들어 '0000111' 어드레스의 다음 어드레스는 '0001000'이 된다. 이는 뱅크 어드레스가 하나 증가하고 열 어드레스가 초기화됨을 의미한다. 결국, 액세스되는 뱅크, 그리 고 열이 변경된다.
행 어드레스가 끝까지 증가하면 제 1 뱅크 어드레스가 변경된다. 예를 들어 '0111111' 어드레스의 다음 어드레스는 '1000000'이 된다. 이는 뱅크 어드레스가 하나 증가하고 행 어드레스 및 열 어드레스가 초기화됨을 의미한다. 결국, 액세스되는 뱅크, 행, 그리고 열이 변경된다.
위의 예에서, 3 비트의 뱅크 어드레스가 사용되었기 때문에 8개의 뱅크를 지정하는 것이 가능하다. 또한, 부분적 4 뱅크 인터리빙(partial 4 bank interleaving)을 통해, 8개의 뱅크 중 4개의 뱅크에 대한 인터리빙 액세스를 수행하는 것이 가능하다. 결국, 부분적인 인터리빙 액세스를 통해 성능 및 전력 효율을 향상시킬 수 있다.
다시 도 5(b)를 참조하면, 전 뱅크 인터리빙(full bank interleaving)은 모든 뱅크를 동시에 액세스한다. 전 뱅크 인터리빙(full bank interleaving)은 RBC 어드레싱으로 불릴 수 있다. RBC 어드레싱 방법에 있어서, 어드레스의 순서가 상위 비트부터 행 어드레스-뱅크 어드레스-열 어드레스로 정해진다.
전 뱅크 인터리빙(full bank interleaving) 방법에 있어서, 어드레스의 증가에 의해 먼저 열 어드레스가 증가한다. 열 어드레스는 최하위 비트(least significant bit)에 해당하기 때문이다. 열 어드레스가 끝까지 증가하면 그 다음에 뱅크 어드레스가 증가한다. 뱅크 어드레스가 끝까지 증가하면 그 다음에 행 어드레스가 증가한다.
상술한 바와 같이, 필요에 따라 어드레싱 방법을 선택하는 것이 가능하다. 만약, 메모리 시스템이 고속으로 동작할 것이 요구되는 경우, 전 뱅크 인터리빙(full bank interleaving) 방법이 가장 유리하다. 반면에, 메모리 시스템이 저전력으로 동작할 것이 요구되는 경우, 리니어 어드레싱(linear addressing) 방법이 가장 유리하다. 또한, 메모리 시스템이 중간 정도의 속도와 중간 정도의 전력 소모로 동작할 것이 요구되는 경우, 부분적 인터리빙 방법이 적절하다.
본 발명에 있어서, 메모리 컨트롤러(120) 내의 레지스터(121) 설정을 변경함으로써 적용될 어드레싱 방법이 변경될 수 있다. 따라서, 사용자는 필요에 따라 자유롭게 어드레싱 방법을 변경하는 것이 가능하다.
도 6은 네 개의 뱅크들을 포함하는 메모리 시스템에서의 어드레스 모드들을 설명하기 위한 표이다. 도 6(a)는 인터리빙을 적용하지 않은 경우이다. 제 1 내지 제 4 뱅크에 BRC 어드레싱이 적용되기 때문에 제 1 뱅크 내지 제 4 뱅크(Bank1~Bank4)가 순차적이고 독립적으로 액세스된다.
도 6(b)는 제 3 뱅크(Bank3) 및 제 4 뱅크(Bank4)에 부분적 2 뱅크 인터리빙(partial 2 bank interleaving)을 적용한 경우이다. 제 1 및 제 2 뱅크(Bank1, Bank2)에 BRC 어드레싱이 적용되기 때문에 제 1 뱅크 및 제 2 뱅크(Bank1, Bank2)가 순차적이고 독립적으로 액세스된다. 또한, 제 3 및 제 4 뱅크(Bank3, Bank4)에 B1RB0C 어드레싱이 적용되기 때문에 제 3 및 제 4 뱅크(Bank3, Bank4)가 동시에 액세스된다.
도 6(c)는 제 1 뱅크 및 제 2 뱅크(Bank1, Bank2)에 부분적 2 뱅크 인터리 빙(partial 2 bank interleaving)을 적용한 경우이다. 제 1 및 제 2 뱅크(Bank1,Bank2)에 B1RB0C 어드레싱이 적용되기 때문에 제 1 및 제 2 뱅크(Bank1,Bank2)가 동시에 액세스된다. 또한, 제 3 및 제 4 뱅크(Bank3, Bank4)(Bank4)에 BRC 어드레싱이 적용되기 때문에 제 3 뱅크(Bank3) 및 제 4 뱅크(Bank4)가 순차적이고 독립적으로 액세스된다. 이 경우는 후술될 도면을 참조하여 자세히 설명될 것이다.
도 6(d)는 전 뱅크 인터리빙(full bank interleaving)을 적용한 경우이다. 제 1 내지 제 4 뱅크에 RBC 어드레싱이 적용되기 때문에 제 1 뱅크 내지 제 4 뱅크(Bank1~Bank4)가 동시에 액세스된다.
도 7은 도 6(b)의 어드레싱 방법을 자세히 설명하기 위한 도면이다. 도 7을 참조하면, 제 1 및 제 2 뱅크(Bank1,Bank2)에 BRC 어드레싱이 적용되기 때문에 제 1 뱅크 및 제 2 뱅크(Bank1, Bank2)가 독립적으로 액세스된다. 도 2에 도시된 바와 같이, 제 1 뱅크(Bank1)는 제 1 프로세서(Processor 1)에 할당될 수 있다. 제 1 프로세서(Processor 1)는 BRC 어드레싱을 이용하여 제 1 뱅크(Bank1)를 독립적으로 액세스할 수 있다.
제 2 뱅크(Bank2)는 제 1 프로세서(Processor 1) 및 제 2 프로세서(Processor 2)에 할당될 수 있다. 다시 말해서, 제 1 프로세서(Processor 1)와 제 2 프로세서(Processor 2)는 제 2 뱅크(Bank2)를 공유할 수 있다. BRC 어드레싱이 적용되기 때문에 제 1 프로세서(Processor 1) 또는 제 2 프로세서(Processor 2) 각각은 제 1 뱅크(Bank1)를 독립적으로 액세스할 수 있다.
도 2에 도시된 바와 같이, 제 3 및 제 4 뱅크(Bank3, Bank4)는 제 2 프로세서(Processor 2)에 할당될 수 있다. 제 3 및 제 4 뱅크(Bank3, Bank4)에 B1RB0C 어드레싱이 적용되기 때문에 제 2 프로세서(Processor 2)는 제 3 및 제 4 뱅크(Bank3, Bank4)를 동시에 액세스할 수 있다. 상술한 바와 같이, 리니어 어드레싱(linear addressing)과 인터리빙 어드레싱을 각각의 뱅크에 선택적으로 적용함으로써 메모리 시스템의 성능 및 전력 효율이 향상될 수 있다.
도 8은 네 개의 뱅크들을 포함하는 메모리 시스템에서의 어드레스 모드들을 설명하기 위한 표이다. 그러나, 본 발명의 범위는 이에 한정되지 않는다. 본 발명이 임의의 개수의 뱅크들을 포함하는 메모리 시스템에 적용될 수 있음은 물론이다.
도 8(a)는 인터리빙을 적용하지 않은 경우이다. 제 1 내지 제 8 뱅크(Bank1~Bank8)에 BRC 어드레싱이 적용되기 때문에 제 1 뱅크 내지 제 8 뱅크(Bank1~Bank8)가 순차적이고 독립적으로 액세스된다.
도 8(b)는 제 7 및 제 8 뱅크(bank7, Bank8)에 부분적 2 뱅크 인터리빙(partial 2 bank interleaving)을 적용한 경우이다. 제 1 내지 제 6 뱅크(Bank1~Bank6)에 BRC 어드레싱이 적용되기 때문에 제 1 뱅크 내지 제 6 뱅크(Bank1~Bank6)가 독립적으로 액세스된다. 또한, 제 7 및 제 8 뱅크(bank7, Bank8)에 B2B1RB0C 어드레싱이 적용되기 때문에 제 7 및 제 8 뱅크(bank7, Bank8)가 동시에 액세스된다.
도 8(c)는 제 1 및 제 2 뱅크(Bank1,Bank2), 그리고 제 5 및 제 6 뱅크(bank5, Bank6)에 부분적 2 뱅크 인터리빙(partial 2 bank interleaving)을 적용한 경우이다. 제 1 및 제 2 뱅크(Bank1,Bank2)에 B2B1RB0C 어드레싱이 적용되기 때문에 제 1 및 제 2 뱅크(Bank1,Bank2)가 동시에 액세스 될 수 있다. 제 3 및 제 4 뱅크(Bank3, Bank4)에 BRC 어드레싱이 적용되기 때문에 제 3 뱅크(Bank3) 및 제 4 뱅크(Bank4)가 독립적으로 액세스된다. 제 5 및 제 6 뱅크(Bank5, Bank6)에 B2B1RB0C 어드레싱이 적용되기 때문에 제 5 및 제 6 뱅크(bank5, Bank6)가 동시에 액세스된다. 제 7 및 제 8 뱅크(bank7, Bank8)에 BRC 어드레싱이 적용되기 때문에 제 7 뱅크 및 제 8 뱅크(Bank7, Bank8)가 독립적으로 액세스된다.
도 8(d)는 제 5 내지 제 8 뱅크(Bank5~Bank8)에 부분적 4 뱅크 인터리빙(partial 4 bank interleaving)을 적용한 경우이다. 제 1 내지 제 4 뱅크(Bank1~Bank4)에 BRC 어드레싱이 적용되기 때문에 제 1 뱅크 내지 제 4 뱅크(Bank1~Bank4)가 독립적으로 액세스된다. 또한, 제 5 내지 제 8 뱅크(Bank5~Bank8)에 B2B1RB0C 어드레싱이 적용되기 때문에 제 5 내지 제 8 뱅크(Bank5~Bank8)가 동시에 액세스된다.
도 8(e)는 제 1 내지 제 4 뱅크(Bank1~Bank4)에 부분적 4 뱅크 인터리빙(partial 4 bank interleaving)을 적용한 경우이다. 제 1 내지 제 4 뱅크(Bank1~Bank4)에 B2B1RB0C 어드레싱이 적용되기 때문에 제 1 내지 제 4 뱅크(Bank1~Bank4)가 동시에 액세스된다. 또한, 제 5 내지 제 8 뱅크(Bank5~Bank8)에 BRC 어드레싱이 적용되기 때문에 제 5 뱅크 내지 제 8 뱅크(Bank5~Bank8)가 독립적으로 액세스된다.
도 8(f)는 전 뱅크 인터리빙(full bank interleaving)을 적용한 경우이다. 제 1 내지 제 8 뱅크(Bank1~Bank8)에 RB2B1B0C 어드레싱이 적용되기 때문에 제 1 내지 제 8 뱅크(Bank1~Bank8)가 동시에 액세스된다.
도 9는 부분적 4 뱅크 어드레싱 방법, 부분적 2 뱅크 어드레싱 방법, 그리고 리니어 어드레싱 방법이 모두 적용된 실시 예를 설명하기 위한 도면이다. 도 9를 참조하면, 제 1 내지 제 4 뱅크(Bank1~Bank4)에 부분적 4 뱅크 어드레스 방법이 적용되기 때문에 제 1 뱅크 내지 제 4 뱅크(Bank1~Bank4)가 동시에 액세스 될 수 있다. 예를 들어, 제 1 내지 제 4 뱅크(Bank1~Bank4)는 제 2 프로세서(Processor 2)에 할당될 수 있다. 제 2 프로세서(Processor 2)는 B2RB1B0C 어드레싱을 이용하여 제 1 내지 제 4 뱅크(Bank1~Bank4)를 동시에 액세스할 수 있다. 또한, 제 5 및 제 6 뱅크(Bank5, Bank6)는 제 1 프로세서(Processor 1)에 할당될 수 있다. 제 1 프로세서(Processor 1)는 B2B1RB0C 어드레싱을 이용하여 제 5 및 제 6 뱅크(Bank5, Bank6)를 동시에 액세스할 수 있다.
제 7 및 제 8 뱅크(Bank7, Bank8)는 제 1 및 제 2 프로세서(Processor1, Processor 2)에 할당될 수 있다. 즉, 제 1 및 제 2 프로세서(Processor1, Processor 2)는 제 7 및 제 8 뱅크(Bank7, Bank8)를 공유할 수 있다. 제 7 및 제 8 뱅크(Bank7, Bank8)에 BRC 어드레싱이 적용되기 때문에 제 1 및 제 2 프로세 서(Processor1, Processor 2) 각각은 제 7 및 제 8 뱅크(Bank7, Bank8)를 독립적으로 액세스할 수 있다. 상술한 바와 같이, 리니어 어드레싱(linear addressing)과 인터리빙 어드레싱을 각각의 메모리 뱅크마다 선택적으로 적용함으로써 메모리 시스템의 성능 및 전력 효율이 향상될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
도 1은 일반적인 듀얼 포트 메모리를 보여주는 블록도이다.
도 2는 본 발명에 따른 메모리 시스템을 보여주는 블록도이다.
도 3은 리니어 어드레싱 방법을 설명하기 위한 도면이다.
도 4는 인터리빙 어드레싱 방법을 설명하기 위한 도면이다.
도 5는 도 2에 도시된 레지스터의 구조를 보여주는 도면이다.
도 6은 네 개의 뱅크들을 포함하는 메모리 시스템에서의 어드레스 모드들을 설명하기 위한 표이다.
도 7은 도 6(b)의 어드레싱 방법을 자세히 설명하기 위한 도면이다.
도 8은 네 개의 뱅크들을 포함하는 메모리 시스템에서의 어드레스 모드들을 설명하기 위한 표이다.
도 9는 부분적 4 뱅크 어드레싱 방법, 부분적 2 뱅크 어드레싱 방법, 그리고 리니어 어드레싱 방법이 모두 적용된 실시 예를 설명하기 위한 도면이다.

Claims (11)

  1. 제 1 및 제 2 프로세서;
    상기 제 1 또는 제 2 프로세서 각각에 할당되는 하나 또는 2 이상의 뱅크들을 포함하는 저장 장치; 및
    하나의 프로세서에 할당되는 뱅크가 복수 개인 경우, 상기 복수의 뱅크들이 인터리빙 방식으로 액세스 되도록 상기 저장 장치를 제어하는 제어 장치를 포함하는 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 제어 장치는 서로 다른 프로세서에 할당되는 하나 또는 2 이상의 뱅크들이 인터리빙 방식으로 액세스 되지 않도록 상기 저장 장치를 제어하는 메모리 시스템.
  3. 제 2 항에 있어서,
    상기 제어 장치는 서로 다른 프로세서에 할당되는 하나 또는 2 이상의 뱅크들이 인터리빙 방식으로 액세스 되지 않도록 리니어 어드레싱을 이용하여 상기 저장 장치를 제어하는 메모리 시스템.
  4. 제 3 항에 있어서,
    상기 제어 장치는 리니어 어드레싱을 위한 어드레스를 상기 저장 장치에 제공하고, 상기 리니어 어드레싱을 위한 어드레스는 최상위 비트부터 뱅크 어드레스, 행 어드레스, 그리고 열 어드레스 순서인 메모리 시스템.
  5. 제 1 항에 있어서,
    상기 제어 장치는 하나의 프로세서에 할당되는 상기 복수의 뱅크들 전부 또는 일부가 인터리빙 방식으로 액세스 되도록 상기 저장 장치를 제어하는 메모리 시스템.
  6. 제 5 항에 있어서,
    상기 제어 장치는 상기 인터리빙 방식에 의해 복수의 뱅크들의 행이 동시에 활성화되도록 상기 저장 장치를 제어하는 메모리 시스템.
  7. 제 5 항에 있어서,
    상기 제어 장치는 상기 인터리빙을 위한 어드레스를 상기 저장 장치에 제공하고, 상기 인터리빙을 위한 어드레스는 최상위 비트부터 행 어드레스, 뱅크 어드레스, 그리고 열 어드레스 순서인 메모리 시스템.
  8. 제 1 항에 있어서,
    상기 제어 장치는 레지스터를 더 포함하고,
    상기 레지스터는 각각의 뱅크에 적용될 어드레싱 모드를 저장하는 메모리 시스템.
  9. 제 8 항에 있어서,
    상기 레지스터는 뱅크들의 개수, 각 뱅크의 크기를 더 저장하는 메모리 시스템.
  10. 제 1 항에 있어서,
    상기 저장 장치는 상기 제 1 프로세서 및 상기 제 2 프로세서 모두에 할당되는 뱅크를 더 포함하는 메모리 시스템.
  11. 제 1 항에 있어서,
    상기 저장 장치는 제 1 포트 및 제 2 포트를 더 포함하고, 상기 제 1 포트는 상기 제 1 프로세서에 연결되고, 상기 제 2 포트는 상기 제 2 포트에 연결되는 메모리 시스템.
KR1020090019267A 2009-03-06 2009-03-06 복수의 프로세서를 포함하는 메모리 시스템 KR20100100395A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090019267A KR20100100395A (ko) 2009-03-06 2009-03-06 복수의 프로세서를 포함하는 메모리 시스템
US12/657,508 US20100228923A1 (en) 2009-03-06 2010-01-22 Memory system having multiple processors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090019267A KR20100100395A (ko) 2009-03-06 2009-03-06 복수의 프로세서를 포함하는 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20100100395A true KR20100100395A (ko) 2010-09-15

Family

ID=42679243

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090019267A KR20100100395A (ko) 2009-03-06 2009-03-06 복수의 프로세서를 포함하는 메모리 시스템

Country Status (2)

Country Link
US (1) US20100228923A1 (ko)
KR (1) KR20100100395A (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092327B2 (en) 2012-12-10 2015-07-28 Qualcomm Incorporated System and method for allocating memory to dissimilar memory devices using quality of service
US9110795B2 (en) * 2012-12-10 2015-08-18 Qualcomm Incorporated System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components
CN103399827B (zh) 2013-07-25 2015-11-25 华为技术有限公司 存储装置、执行访问操作的系统和方法
US9612648B2 (en) 2013-08-08 2017-04-04 Qualcomm Incorporated System and method for memory channel interleaving with selective power or performance optimization
KR102355573B1 (ko) 2014-10-29 2022-01-27 삼성전자주식회사 선형 리맵퍼 및 액세스 윈도우를 포함하는 메모리 시스템 및 시스템 온 칩
EP3271826B1 (en) 2015-07-30 2021-09-29 Hewlett Packard Enterprise Development LP Interleaved access of memory
KR102387977B1 (ko) 2017-11-29 2022-04-19 삼성전자주식회사 적어도 두 개의 채널들을 통해 시스템 온 칩과 통신하는 메모리 장치, 이를 포함하는 전자 장치, 그리고 전자 장치의 동작 방법
CN114072778A (zh) * 2019-05-07 2022-02-18 麦姆瑞克斯公司 存储器处理单元架构
US10853066B1 (en) 2019-05-07 2020-12-01 Memryx Incorporated Memory processing units and methods of computing DOT products including zero bit skipping
US10998037B2 (en) 2019-05-07 2021-05-04 Memryx Incorporated Memory processing units and methods of computing dot products
US11488650B2 (en) 2020-04-06 2022-11-01 Memryx Incorporated Memory processing unit architecture

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307320A (en) * 1992-09-23 1994-04-26 Intel Corporation High integration DRAM controller
US5675549A (en) * 1994-12-23 1997-10-07 Micron Technology, Inc. Burst EDO memory device address counter
US5619471A (en) * 1995-06-06 1997-04-08 Apple Computer, Inc. Memory controller for both interleaved and non-interleaved memory
US5761695A (en) * 1995-09-19 1998-06-02 Hitachi, Ltd. Cache memory control method and apparatus, and method and apparatus for controlling memory capable of interleave control
US6049855A (en) * 1997-07-02 2000-04-11 Micron Electronics, Inc. Segmented memory system employing different interleaving scheme for each different memory segment
US6965974B1 (en) * 1997-11-14 2005-11-15 Agere Systems Inc. Dynamic partitioning of memory banks among multiple agents
US6625685B1 (en) * 2000-09-20 2003-09-23 Broadcom Corporation Memory controller with programmable configuration
US6320812B1 (en) * 2000-09-20 2001-11-20 Agilent Technologies, Inc. Error catch RAM for memory tester has SDRAM memory sets configurable for size and speed
US7139862B2 (en) * 2003-02-24 2006-11-21 Nokia Corporation Interleaving method and apparatus with parallel access in linear and interleaved order
JP2005259321A (ja) * 2004-03-15 2005-09-22 Nec Electronics Corp フレキシブル・マルチエリア・メモリ及び該メモリを用いた電子機器
US20050268023A1 (en) * 2004-06-01 2005-12-01 Briggs Randall D Multi-port random access memory
JP4569921B2 (ja) * 2004-08-04 2010-10-27 パナソニック株式会社 省電力メモリアクセス制御装置
GB2417577A (en) * 2004-08-25 2006-03-01 Imagination Tech Ltd Memory controller with randomised bank selection
TWI254856B (en) * 2004-10-29 2006-05-11 Via Tech Inc Memory interleave method
KR101275752B1 (ko) * 2005-12-06 2013-06-17 삼성전자주식회사 메모리 시스템 및 그것의 부팅 방법
US7398362B1 (en) * 2005-12-09 2008-07-08 Advanced Micro Devices, Inc. Programmable interleaving in multiple-bank memories
US7872657B1 (en) * 2006-06-16 2011-01-18 Nvidia Corporation Memory addressing scheme using partition strides
KR100879463B1 (ko) * 2007-05-11 2009-01-20 삼성전자주식회사 억세스 권한 이양 시 프리차아지 스킵을 방지하는 동작을갖는 멀티패쓰 억세스블 반도체 메모리 장치

Also Published As

Publication number Publication date
US20100228923A1 (en) 2010-09-09

Similar Documents

Publication Publication Date Title
KR20100100395A (ko) 복수의 프로세서를 포함하는 메모리 시스템
US11681449B2 (en) Memory system and SoC including linear address remapping logic
US8301829B2 (en) Flash memory device and flash memory system including buffer memory
CN1988034B (zh) 具有在端口间的数据发送模式的多径访问半导体存储器件
US5761732A (en) Interleaving for memory cards
CN101840383B (zh) 支持连续/离散地址多数据并行访问的可配置存储器
US10067681B2 (en) Memory chip, memory system, and method of accessing the memory chip
CN101401166A (zh) 具有多个地址、数据及命令总线的存储器装置及方法
US8122199B2 (en) Multi port memory device with shared memory area using latch type memory cells and driving method
US7979625B2 (en) SPI bank addressing scheme for memory densities above 128Mb
US8639891B2 (en) Method of operating data storage device and device thereof
US11449441B2 (en) Multi-ported nonvolatile memory device with bank allocation and related systems and methods
JPWO2006051780A1 (ja) 不揮発性メモリ装置および不揮発性メモリ装置のアクセス方法
US8977800B2 (en) Multi-port cache memory apparatus and method
WO2008070576A2 (en) Embedded memory and multi-media accelerator and method of operating same
KR20100127317A (ko) 멀티포트 메모리 슈퍼셀 및 데이터 경로 스위칭 회로를 갖는 집적 회로
CN102541769A (zh) 一种存储器接口访问控制方法及装置
US20080126604A1 (en) Semiconductor memory device and method thereof
US6906978B2 (en) Flexible integrated memory
CN109388344B (zh) 一种基于带宽扩展交叉编址的双端口sram访问控制系统及方法
US8856487B2 (en) Configurable partitions for non-volatile memory
KR20050025619A (ko) 융통성있는 dram 아키텍처를 위한 시스템, 장치 및 방법
US7729198B2 (en) Synchronous memory circuit
US20210157495A1 (en) Device and method for controlling data-reading and -writing
JPS5841584B2 (ja) マルチアクセスメモリ方法およびマルチアクセス用メモリチツプ

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid