KR20170134704A - 확장 메모리에 대한 액세스 방법, 디바이스 및 시스템 - Google Patents
확장 메모리에 대한 액세스 방법, 디바이스 및 시스템 Download PDFInfo
- Publication number
- KR20170134704A KR20170134704A KR1020177032218A KR20177032218A KR20170134704A KR 20170134704 A KR20170134704 A KR 20170134704A KR 1020177032218 A KR1020177032218 A KR 1020177032218A KR 20177032218 A KR20177032218 A KR 20177032218A KR 20170134704 A KR20170134704 A KR 20170134704A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- data
- accessed
- extended
- address
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped cache accessing, e.g. pipeline with reload from main memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1008—Correctness of operation, e.g. memory ordering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0064—Latency reduction in handling transfers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Abstract
Description
도 1은 종래 기술에서 확장 메모리를 포함하는 컴퓨터 시스템의 하드웨어 구성의 개략도이고;
도 2는 본 발명의 실시예에 따른 컴퓨터 시스템의 하드웨어 구성 구조의 개략도이고;
도 3은 본 발명의 실시예에 따라 컴퓨터에 의해 확장 메모리에 액세스하는 것에 대한 지연을 분석하는 것에 대한 개략도이고;
도 4는 DDR 프로토콜에서 메모리 액세스 요청의 실행 동안 시간 시퀀스를 분석하는 것에 대한 개략도이고;
도 5a는 확장 메모리에서 데이터에 액세스하기 위한 처리 방법의 실시예의 개략적인 플로우차트이고;
도 5b는 액세스될 데이터의 저장 주소에 따라 N+1개의 액세스 주소를 생성하는 것에 대한 개략적인 플로우차트이고;
도 6은 본 발명의 실시예에 따라 프로세서에 의해 검출된 확장 메모리 공간의 개략도이고;
도 7은 확장 메모리 제어기에 의해 메모리 액세스 요청을 처리하는 것에 대한 실시예의 개략적인 플로우차트이고;
도 8은 확장 메모리 제어기에 의해 수행된 순차적 실행에 대한 실시예의 개략적인 플로우차트이고;
도 9는 확장 메모리 제어기에 의해 수행된 비순차적 실행에 대한 실시예의 개략적인 플로우차트이고;
도 10은 확장 메모리 제어기의 실시예에서 구성 구조의 개략도이다.
Claims (20)
- 확장 메모리에 액세스하기 위한 방법으로서,
컴퓨터는 메모리 버스를 사용하여 확장 메모리 시스템에 접속되고, 상기 확장 메모리 시스템은 확장 메모리 제어기 및 상기 확장 메모리를 포함하고, 상기 컴퓨터가 상기 확장 메모리에 저장된 액세스될 데이터(to-be-accessed data)에 액세스할 필요가 있을 때, 상기 방법은,
상기 확장 메모리 제어기에 의해, 상기 컴퓨터 내의 프로세서 시스템에 의해 순차적으로(serially) 송신된 N+1개의 메모리 액세스 요청을 수신하는 단계 - 상기 메모리 액세스 요청들 모두에 포함된 액세스 주소들은 서로 상이하고 동일한 물리 주소를 가리키고, 상기 물리 주소는 상기 확장 메모리에서 액세스될 데이터의 저장 주소이고, N≥1이고, N은 정수임 - ;
상기 N+1개의 메모리 액세스 요청 중 제1 메모리 액세스 요청을 수신할 때 상기 확장 메모리 제어기에 의해, 상기 제1 메모리 액세스 요청에서 반송된 상기 액세스 주소에 따라 상기 물리 주소를 결정하고, 상기 액세스될 데이터를 획득하기 위한 판독 요청을 상기 확장 메모리로 송신하고, 구체적인 응답 메시지를 상기 프로세서 시스템으로 리턴하는 단계 - 상기 판독 요청은 상기 물리 주소를 포함함 - ;
상기 확장 메모리에 의해 리턴된 상기 액세스될 데이터를 수신하기 전에, 상기 N+1개의 메모리 액세스 요청 중 상기 제1 메모리 액세스 요청 후에 또 다른 메모리 액세스 요청이 수신될 때마다, 상기 확장 메모리 제어기에 의해, 구체적인 응답 메시지를 메모리 버스 프로토콜에 명시된 액세스 지연 내에 상기 프로세서 시스템으로 리턴하는 단계;
상기 확장 메모리에 의해 리턴된 상기 액세스될 데이터를 수신한 후에 상기 확장 메모리 제어기에 의해, 상기 액세스될 데이터를 데이터 버퍼로 기입하고, 구체적인 응답 메시지를 상기 프로세서 시스템으로 리턴하는 것을 정지하는 단계; 및
상기 N+1개의 메모리 액세스 요청 중 또 다른 메모리 액세스 요청을 수신할 때 상기 확장 메모리 제어기에 의해, 상기 데이터 버퍼로부터 상기 액세스될 데이터를 판독하고, 상기 액세스될 데이터를 상기 프로세서 시스템으로 리턴하는 단계
를 포함하는 방법. - 제1항에 있어서, 상기 N+1개의 메모리 액세스 요청들 모두에서의 상기 액세스 주소들은 동일한 뱅크 주소 및 상이한 행 주소를 포함하는 방법.
- 제1항 또는 제2항에 있어서, 상기 방법은,
상기 확장 메모리 제어기에 의해, 상기 N+1개의 메모리 액세스 요청들 모두에 포함된 상기 액세스 주소들과 상기 확장 메모리에서 액세스될 데이터의 상기 물리 주소 사이의 매핑 관계를 미리 설정하는 단계를 추가로 포함하고;
상기 확장 메모리 제어기에 의해, 상기 제1 메모리 액세스 요청에서 반송된 상기 액세스 주소에 따라 상기 물리 주소를 결정하는 것은,
상기 물리 주소를 획득하기 위해, 상기 확장 메모리 제어기에 의해, 상기 제1 메모리 액세스 요청에서 반송된 상기 액세스 주소에 따라 상기 매핑 관계를 질의하는 것을 포함하는 방법. - 제3항에 있어서, 상기 확장 메모리 제어기에 의해, 상기 제1 메모리 액세스 요청에서 반송된 상기 액세스 주소에 따라 상기 물리 주소를 결정한 후에, 상기 방법은,
상기 확장 메모리 제어기에 의해, 상기 데이터 버퍼 내에 레코드를 생성하고 - 상기 레코드는 태그 필드 및 데이터 필드를 포함함 - , 상기 태그 필드를 상기 물리 주소로 설정하는 단계를 추가로 포함하는 방법. - 제4항에 있어서, 상기 레코드는 유효성 필드를 추가로 포함하고, 상기 방법은,
상기 확장 메모리 제어기에 의해, 상기 유효성 필드를 무효로 설정하는 단계
를 추가로 포함하는 방법. - 제5항에 있어서, 상기 N+1개의 메모리 액세스 요청 중 상기 제1 메모리 액세스 요청 후에 메모리 액세스 요청이 수신될 때마다, 상기 방법은,
상기 물리 주소를 획득하기 위해, 상기 확장 메모리 제어기에 의해, 상기 메모리 액세스 요청들 모두에서 반송된 상기 액세스 주소들에 따라 상기 매핑 관계를 질의하는 단계; 및
상기 물리 주소에 따라 상기 데이터 버퍼 내의 상기 레코드를 질의하고, 상기 레코드 내의 상기 유효성 필드가 무효라고 결정할 때, 상기 구체적인 응답 메시지를 생성하는 단계를 추가로 포함하는 방법. - 제5항에 있어서, 상기 확장 메모리에 의해 리턴된 상기 액세스될 데이터를 수신한 후에 상기 확장 메모리 제어기에 의해, 상기 액세스될 데이터를 데이터 버퍼로 기입하는 것은,
상기 확장 메모리 제어기에 의해, 상기 물리 주소에 대응하는 상기 레코드에 대해 상기 데이터 버퍼를 검색하고, 상기 레코드 내의 상기 데이터 필드를 상기 액세스될 데이터로 설정하고, 상기 유효성 필드를 유효로 설정하는 것을 포함하는 방법. - 확장 메모리에 액세스하기 위한 방법으로서,
컴퓨터는 메모리 버스를 사용하여 확장 메모리 시스템에 접속되고, 상기 확장 메모리 시스템은 확장 메모리 제어기 및 상기 확장 메모리를 포함하고, 상기 컴퓨터가 상기 확장 메모리에 저장된 액세스될 데이터에 액세스할 필요가 있을 때, 상기 방법은,
상기 컴퓨터 내의 프로세서 시스템에 의해, 상기 액세스될 데이터의 저장 주소를 수신하는 단계;
상기 프로세서 시스템에 의해, 상기 액세스될 데이터의 상기 저장 주소에 따라 N+1개의 메모리 액세스 요청을 생성하는 단계 - 상기 N+1개의 메모리 액세스 요청에 포함된 액세스 주소들은 서로 상이하고 동일한 물리 주소를 가리키고, 상기 물리 주소는 상기 확장 메모리에서 액세스될 데이터의 상기 저장 주소이고, N≥1이고, N은 정수임 - ; 및
상기 프로세서 시스템에 의해, 상기 N+1개의 메모리 액세스 요청을 상기 확장 메모리 제어기로 송신하는 단계
를 포함하는 방법. - 제8항에 있어서, 상기 프로세서 시스템에 의해, 상기 액세스될 데이터의 상기 저장 주소에 따라 N+1개의 메모리 액세스 요청을 생성하는 상기 단계 전에, 상기 방법은,
상기 컴퓨터에 의해 상기 확장 메모리로부터 데이터를 획득하기 위한 지연 파라미터에 따라 값 N을 결정하는 단계
를 추가로 포함하며, 상기 컴퓨터에 의해 상기 확장 메모리로부터 데이터를 획득하기 위한 상기 지연 파라미터는 다음 파라미터들: 상기 확장 메모리 제어기로부터의 상기 메모리 액세스 요청을 상기 확장 메모리로 전송하는 것에 대한 지연(tPD1), 상기 메모리 액세스 요청에 의해 판독되는 상기 확장 메모리로부터의 데이터를 상기 확장 메모리 제어기로 전송하는 것에 대한 지연(tPD2), 또는 상기 프로세서 시스템에 의해 송신된 2개의 연속적 메모리 액세스 요청 사이의 시간 간격(T_Interval) 중 어느 하나 또는 임의의 조합을 포함하는 처리 방법. - 제9항에 있어서, 상기 컴퓨터에 의해 상기 확장 메모리로부터 데이터를 획득하기 위한 지연 파라미터에 따라 값 N을 결정하는 상기 단계는,
N≥[(tPD1+tPD2)/T_Interval]이고, [*]은 반올림 함수인 상기 값 N을 결정하는 것을 포함하는 처리 방법. - 제9항 또는 제10항에 있어서, 2개의 연속적 메모리 액세스 요청 사이의 상기 시간 간격 T_Interval은 tGAPmin=tRCD+tRTP+tRP 또는 T_Fence인 처리 방법.
- 제8항 내지 제11항 중 어느 한 항에 있어서, 상기 프로세서 시스템에 의해, 상기 액세스될 데이터의 상기 저장 주소에 따라 N+1개의 메모리 액세스 요청을 생성하는 상기 단계는,
가상 주소(Addr_Virtual)에 대응하는 물리 주소(Addr_Physical)를 획득하기 위해, 상기 액세스될 데이터의 상기 저장 주소(Addr_Virtual)에 따라 가상-대-물리 주소 변환을 수행하는 것 - 상기 액세스될 데이터의 상기 저장 주소는 상기 가상 주소임 - ;
상기 물리 주소(Addr_Physical)에 따라 N개의 액세스 주소(Addr_Physical(n))를 생성하는 것 - n은 정수이고 1≤n≤N이고, 상기 N개의 액세스 주소의 행 주소들은 Addr_Physical_Row(n)=n*M+Addr_Physical_Row이며, n은 정수이고 1≤n≤N이고, M은 상기 확장 메모리에 포함된 메모리 행들의 수량이고, Addr_Physical_Row는 상기 물리 주소(Addr_Physical)의 행 주소이고; 상기 N개의 물리 주소 각각의 상기 행 주소 이외의 주소는 상기 물리 주소(Addr_Physical)의 상기 행 주소 이외의 주소와 동일한 것임 - ; 및
상기 프로세서 시스템에 의해, Addr_Physical 및 Addr_Physical(n) - n은 정수이고 1≤n≤N임 - 에 따라 상기 N+1개의 메모리 액세스 요청을 생성하는 것을 포함하는 처리 방법. - 컴퓨터 내의 프로세서 시스템에 의해 확장 메모리에서 액세스될 데이터에 액세스하도록 적용된, 확장 메모리 제어기로서,
상기 컴퓨터 내의 상기 프로세서 시스템은 메모리 버스를 사용하여 확장 메모리 시스템에 접속되고, 상기 확장 메모리 시스템은 상기 확장 메모리 제어기 및 상기 확장 메모리를 포함하고, 상기 확장 메모리 제어기는,
수신 모듈;
실행 모듈; 및
송신 모듈
을 포함하며,
상기 수신 모듈은, 상기 컴퓨터 내의 상기 프로세서 시스템에 의해 순차적으로 송신된 N+1개의 메모리 액세스 요청을 수신하도록 구성되며, 상기 메모리 액세스 요청들 모두에 포함된 액세스 주소들은 서로 상이하고 동일한 물리 주소를 가리키고, 상기 물리 주소는 상기 확장 메모리에서 액세스될 데이터의 저장 주소이고, N≥1이고, N은 정수이고 ;
상기 실행 모듈은, 상기 N+1개의 메모리 액세스 요청 중 제1 메모리 액세스 요청이 수신될 때 상기 제1 메모리 액세스 요청에서 반송된 상기 액세스 주소에 따라 상기 물리 주소를 결정하고 - 상기 물리 주소는 상기 확장 메모리에서 액세스될 데이터의 상기 저장 주소임 - , 상기 액세스될 데이터를 획득하기 위한 판독 요청을 생성하고, 구체적인 응답 메시지를 생성하고 - 상기 판독 요청은 상기 물리 주소를 포함함 - ;
상기 확장 메모리에 의해 리턴된 상기 액세스될 데이터가 수신되기 전에, 상기 N+1개의 메모리 액세스 요청 중의 메모리 액세스 요청이 수신될 때마다, 메모리 버스 프로토콜에 명시된 액세스 지연 내에 구체적인 응답 메시지를 생성하고;
상기 확장 메모리에 의해 리턴된 상기 액세스될 데이터가 수신된 후에 상기 액세스될 데이터를 데이터 버퍼로 기입하고; 구체적인 응답 메시지를 상기 프로세서 시스템으로 리턴하는 것을 정지하고;
상기 N+1개의 메모리 액세스 요청 중 또 다른 메모리 액세스 요청이 수신될 때 상기 데이터 버퍼로부터 상기 액세스될 데이터를 판독하고, 상기 액세스될 데이터를 상기 송신 모듈로 송신하도록 구성되고;
상기 송신 모듈은, 상기 판독 요청을 상기 확장 메모리로 송신하고, 상기 구체적인 응답 메시지를 상기 프로세서 시스템으로 리턴하고;
상기 확장 메모리에 의해 리턴된 상기 액세스될 데이터가 수신되기 전에, 상기 N+1개의 메모리 액세스 요청 중 상기 제1 메모리 액세스 요청 후에 또 다른 메모리 액세스 요청이 수신될 때마다, 상기 구체적인 응답 메시지를 상기 메모리 버스 프로토콜에 명시된 상기 액세스 지연 내에 상기 프로세서 시스템으로 리턴하고;
상기 실행 모듈로부터 상기 액세스될 데이터를 수신하고, 상기 액세스될 데이터를 상기 프로세서 시스템으로 송신하도록 구성되는 확장 메모리 제어기. - 제13항에 있어서, 상기 N+1개의 메모리 액세스 요청들 모두에서의 상기 액세스 주소들은 동일한 뱅크 주소 및 상이한 행 주소를 포함하는 확장 메모리 제어기.
- 제13항 또는 제14항에 있어서, 상기 실행 모듈은,
상기 N+1개의 메모리 액세스 요청들 모두에 포함된 상기 액세스 주소들과 상기 확장 메모리에서 액세스될 데이터의 상기 물리 주소 사이의 매핑 관계를 미리 설정하고;
상기 확장 메모리에서 액세스될 데이터의 상기 물리 주소를 획득하기 위해, 상기 제1 메모리 액세스 요청에서 반송된 상기 액세스 주소에 따라, 상기 제1 메모리 액세스 요청에 포함된 상기 주소와 상기 확장 메모리에서 액세스될 데이터의 상기 물리 주소 사이의 상기 매핑 관계를 질의하도록 추가로 구성되는 확장 메모리 제어기. - 제15항에 있어서, 상기 실행 모듈은,
상기 물리 주소가 상기 제1 메모리 액세스 요청에서 반송된 상기 액세스 주소에 따라 결정된 후에 상기 데이터 버퍼 내에 레코드를 생성하고 - 상기 레코드는 태그 필드 및 데이터 필드를 포함함 - , 상기 태그 필드를 상기 물리 주소로 설정하도록 추가로 구성되는 확장 메모리 제어기. - 제16항에 있어서, 상기 레코드는 유효성 필드를 추가로 포함하고;
상기 실행 모듈은 상기 레코드 내의 상기 유효성 필드를 무효로 설정하도록 추가로 구성되는 확장 메모리 제어기. - 제17항에 있어서, 상기 실행 모듈은,
상기 N+1개의 메모리 액세스 요청 중 상기 제1 메모리 액세스 요청 후에 또 다른 메모리 액세스 요청이 수신될 때마다, 상기 물리 주소를 획득하기 위해, 상기 메모리 액세스 요청들 모두에서 반송된 상기 액세스 주소들에 따라 상기 매핑 관계를 질의하고;
상기 물리 주소에 따라 상기 데이터 버퍼 내의 상기 레코드를 질의하고;
상기 레코드 내의 상기 유효성 필드가 무효라고 결정될 때 상기 구체적인 응답 메시지를 생성하도록 추가로 구성되는 확장 메모리 제어기. - 제17항에 있어서,
상기 실행 모듈은, 상기 확장 메모리에 의해 리턴된 상기 액세스될 데이터가 수신된 후에 상기 물리 주소에 대응하는 상기 레코드에 대해 상기 데이터 버퍼를 검색하고, 상기 레코드 내의 상기 데이터 필드를 상기 액세스될 데이터로 설정하고, 상기 유효성 필드를 유효로 설정하도록 추가로 구성되는 확장 메모리 제어기. - 확장 메모리를 포함하는 컴퓨터 시스템으로서,
상기 컴퓨터 시스템은 프로세서 시스템, 메인 메모리, 제13항 내지 제19항 중 어느 한 항에 따른 상기 확장 메모리 제어기, 및 상기 확장 메모리를 포함하고; 상기 확장 메모리 제어기는 상기 확장 메모리에 접속되고, 상기 확장 메모리 제어기는 메모리 인터페이스를 사용하여 상기 프로세서 시스템에 접속되고, 상기 프로세서 시스템은 상기 메인 메모리에 접속되고; 상기 메인 메모리는 프로그램을 저장하고 실행 명령어를 저장하도록 구성되고; 상기 프로세서 시스템은 상기 메인 메모리에 저장된 상기 실행 명령어를 실행하도록 구성되어, 상기 프로세서 시스템이 제8항 내지 제12항 중 어느 한 항에 따른 상기 컴퓨터에 의해 상기 확장 메모리 시스템 내의 상기 확장 메모리에 액세스하기 위한 상기 방법을 수행하게 하는 컴퓨터 시스템.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201510198452.XA CN106155577B (zh) | 2015-04-23 | 2015-04-23 | 扩展内存的访问方法、设备以及系统 |
| CN201510198452.X | 2015-04-23 | ||
| PCT/CN2016/073304 WO2016169318A1 (zh) | 2015-04-23 | 2016-02-03 | 扩展内存的访问方法、设备以及系统 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20170134704A true KR20170134704A (ko) | 2017-12-06 |
| KR102168017B1 KR102168017B1 (ko) | 2020-10-20 |
Family
ID=57142912
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020177032218A Active KR102168017B1 (ko) | 2015-04-23 | 2016-02-03 | 확장 메모리에 대한 액세스 방법, 디바이스 및 시스템 |
Country Status (9)
| Country | Link |
|---|---|
| US (2) | US10545672B2 (ko) |
| EP (2) | EP3674877B1 (ko) |
| JP (1) | JP6685323B2 (ko) |
| KR (1) | KR102168017B1 (ko) |
| CN (2) | CN106155577B (ko) |
| BR (1) | BR112017022547B1 (ko) |
| CA (1) | CA2983479C (ko) |
| SG (1) | SG11201708477UA (ko) |
| WO (1) | WO2016169318A1 (ko) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20200070349A (ko) * | 2018-07-17 | 2020-06-17 | 후아웨이 테크놀러지 컴퍼니 리미티드 | I/o 요청 처리 방법 및 기기 |
Families Citing this family (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106155577B (zh) * | 2015-04-23 | 2019-03-26 | 华为技术有限公司 | 扩展内存的访问方法、设备以及系统 |
| CN108228076B (zh) | 2016-12-14 | 2020-10-16 | 华为技术有限公司 | 访问磁盘的方法和主机 |
| US10733100B2 (en) * | 2017-06-12 | 2020-08-04 | Western Digital Technologies, Inc. | Method and apparatus for classifying and buffering write commands |
| CN107590099B (zh) * | 2017-08-31 | 2021-04-20 | 深圳市共济科技股份有限公司 | 一种多主机访问从机的方法、扩展装置及存储介质 |
| CN109783395B (zh) * | 2017-11-15 | 2023-03-31 | 阿里巴巴集团控股有限公司 | 内存访问方法、交换芯片、内存模组及电子设备 |
| US10909046B2 (en) * | 2018-06-15 | 2021-02-02 | Micron Technology, Inc. | Memory access determination |
| CN109308190B (zh) * | 2018-07-09 | 2023-03-14 | 北京中科睿芯科技集团有限公司 | 基于3d堆栈内存架构的共享行缓冲系统及共享行缓冲器 |
| CN109284231B (zh) * | 2018-07-24 | 2023-05-23 | 江苏微锐超算科技有限公司 | 内存访问请求的处理方法、装置及内存控制器 |
| CN109189700A (zh) * | 2018-10-19 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种扩展内存装置、扩展内存系统、扩展内存的访存方法 |
| GB2578600B (en) * | 2018-10-31 | 2021-10-13 | Advanced Risc Mach Ltd | Memory transaction request management |
| CN111405603B (zh) * | 2019-01-02 | 2023-05-09 | 中国移动通信有限公司研究院 | 一种时延获取方法、测试装置以及计算机存储介质 |
| CN112306918B (zh) * | 2019-07-31 | 2024-06-14 | 北京百度网讯科技有限公司 | 数据访问方法、装置、电子设备和计算机存储介质 |
| CN113377704B (zh) * | 2021-06-11 | 2022-04-12 | 上海壁仞智能科技有限公司 | 人工智能芯片以及数据操作方法 |
| EP4365748A4 (en) * | 2021-07-23 | 2024-10-09 | Huawei Technologies Co., Ltd. | DATA ACCESS METHOD AND ASSOCIATED DEVICE |
| US11600312B1 (en) | 2021-08-16 | 2023-03-07 | Micron Technology, Inc. | Activate commands for memory preparation |
| CN113704143B (zh) * | 2021-08-27 | 2025-03-18 | 湖南国科微电子股份有限公司 | 数据读取方法、装置及计算机设备 |
| CN114721726B (zh) * | 2022-06-10 | 2022-08-12 | 成都登临科技有限公司 | 一种多线程组并行获取指令的方法、处理器及电子设备 |
| CN115757196B (zh) * | 2022-11-09 | 2023-09-01 | 超聚变数字技术有限公司 | 内存、访问内存方法及计算设备 |
| CN115686153B (zh) * | 2022-12-29 | 2023-03-31 | 浪潮电子信息产业股份有限公司 | 一种内存模组及一种电子设备 |
| CN115827504B (zh) * | 2023-01-31 | 2023-07-11 | 南京砺算科技有限公司 | 多核心图形处理器的数据存取方法、图形处理器及介质 |
| WO2024182288A1 (en) * | 2023-02-27 | 2024-09-06 | Kove Ip, Llp | Cache-coherent memory extension with cpu stall avoidance |
| CN117851291B (zh) * | 2024-03-07 | 2024-06-21 | 北京象帝先计算技术有限公司 | 内存访问系统、电子组件及电子设备 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004234461A (ja) * | 2003-01-31 | 2004-08-19 | Sony Corp | 情報処理装置および方法、並びにプログラム |
| WO2009125572A1 (ja) * | 2008-04-08 | 2009-10-15 | パナソニック株式会社 | メモリ制御回路及びメモリ制御方法 |
| JP2011118501A (ja) * | 2009-12-01 | 2011-06-16 | Yokogawa Electric Corp | データ転送システム |
| JP2013069210A (ja) * | 2011-09-26 | 2013-04-18 | Toshiba Corp | メモリシステム |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5042003A (en) * | 1988-07-06 | 1991-08-20 | Zenith Data Systems Corporation | Memory usage system |
| JP2513024B2 (ja) * | 1989-03-16 | 1996-07-03 | 日本電気株式会社 | 拡張記憶アドレス制御方式 |
| JPH05143438A (ja) * | 1991-11-19 | 1993-06-11 | Nec Software Kansai Ltd | 拡張メモリ管理方式 |
| JP2002063069A (ja) * | 2000-08-21 | 2002-02-28 | Hitachi Ltd | メモリ制御装置、データ処理システム及び半導体装置 |
| JP2003186740A (ja) * | 2001-12-19 | 2003-07-04 | Matsushita Electric Ind Co Ltd | メモリ制御装置、及びメモリ制御方法 |
| JP3513147B2 (ja) * | 2002-05-29 | 2004-03-31 | 株式会社ハギワラシスコム | Usbストレージデバイス及びその制御装置 |
| KR100420444B1 (ko) * | 2003-06-03 | 2004-02-26 | 주식회사 넥스트웨이 | 외장형 저장장치 |
| US7673345B2 (en) * | 2005-03-31 | 2010-03-02 | Intel Corporation | Providing extended memory protection |
| US8041881B2 (en) * | 2006-07-31 | 2011-10-18 | Google Inc. | Memory device with emulated characteristics |
| CN100444133C (zh) * | 2006-06-13 | 2008-12-17 | 深圳市研祥智能科技股份有限公司 | 计算机访问扩充内存的方法 |
| EP2071468A4 (en) | 2006-12-25 | 2010-11-03 | Panasonic Corp | MEMORY CONTROL DEVICE, MEMORY DEVICE AND MEMORY CONTROL METHOD |
| JP2010250727A (ja) * | 2009-04-20 | 2010-11-04 | Panasonic Corp | メモリ制御回路 |
| CN102609378B (zh) * | 2012-01-18 | 2016-03-30 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
| US9281036B2 (en) * | 2013-01-08 | 2016-03-08 | Qualcomm Incorporated | Memory device having an adaptable number of open rows |
| CN104216837A (zh) * | 2013-05-31 | 2014-12-17 | 华为技术有限公司 | 一种内存系统、内存访问请求的处理方法和计算机系统 |
| CN104346293B (zh) * | 2013-07-25 | 2017-10-24 | 华为技术有限公司 | 混合内存的数据访问方法、模块、处理器及终端设备 |
| CN104375946B (zh) * | 2013-08-16 | 2018-04-20 | 华为技术有限公司 | 一种数据处理的方法及装置 |
| CN103488436B (zh) | 2013-09-25 | 2017-04-26 | 华为技术有限公司 | 内存扩展系统及方法 |
| CN104388436B (zh) | 2014-10-29 | 2016-08-24 | 中南民族大学 | 一种水稻诱导抗病基因OsAAA1及其应用 |
| CN106155577B (zh) * | 2015-04-23 | 2019-03-26 | 华为技术有限公司 | 扩展内存的访问方法、设备以及系统 |
-
2015
- 2015-04-23 CN CN201510198452.XA patent/CN106155577B/zh active Active
- 2015-04-23 CN CN201910200464.XA patent/CN110059020B/zh active Active
-
2016
- 2016-02-03 BR BR112017022547-6A patent/BR112017022547B1/pt active IP Right Grant
- 2016-02-03 WO PCT/CN2016/073304 patent/WO2016169318A1/zh not_active Ceased
- 2016-02-03 EP EP19189059.9A patent/EP3674877B1/en active Active
- 2016-02-03 SG SG11201708477UA patent/SG11201708477UA/en unknown
- 2016-02-03 JP JP2017555264A patent/JP6685323B2/ja active Active
- 2016-02-03 CA CA2983479A patent/CA2983479C/en active Active
- 2016-02-03 KR KR1020177032218A patent/KR102168017B1/ko active Active
- 2016-02-03 EP EP16782466.3A patent/EP3279788B1/en active Active
-
2017
- 2017-10-20 US US15/788,990 patent/US10545672B2/en active Active
-
2020
- 2020-01-16 US US16/744,795 patent/US11237728B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004234461A (ja) * | 2003-01-31 | 2004-08-19 | Sony Corp | 情報処理装置および方法、並びにプログラム |
| WO2009125572A1 (ja) * | 2008-04-08 | 2009-10-15 | パナソニック株式会社 | メモリ制御回路及びメモリ制御方法 |
| JP2011118501A (ja) * | 2009-12-01 | 2011-06-16 | Yokogawa Electric Corp | データ転送システム |
| JP2013069210A (ja) * | 2011-09-26 | 2013-04-18 | Toshiba Corp | メモリシステム |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20200070349A (ko) * | 2018-07-17 | 2020-06-17 | 후아웨이 테크놀러지 컴퍼니 리미티드 | I/o 요청 처리 방법 및 기기 |
| US11249663B2 (en) | 2018-07-17 | 2022-02-15 | Huawei Technologies Co., Ltd. | I/O request processing method and device |
Also Published As
| Publication number | Publication date |
|---|---|
| JP6685323B2 (ja) | 2020-04-22 |
| WO2016169318A1 (zh) | 2016-10-27 |
| SG11201708477UA (en) | 2017-11-29 |
| US20180039424A1 (en) | 2018-02-08 |
| US20200150872A1 (en) | 2020-05-14 |
| US11237728B2 (en) | 2022-02-01 |
| EP3279788A1 (en) | 2018-02-07 |
| US10545672B2 (en) | 2020-01-28 |
| CN110059020B (zh) | 2024-01-30 |
| CN106155577A (zh) | 2016-11-23 |
| EP3674877B1 (en) | 2021-12-29 |
| EP3279788B1 (en) | 2019-08-21 |
| CA2983479A1 (en) | 2016-10-27 |
| CA2983479C (en) | 2020-12-22 |
| CN106155577B (zh) | 2019-03-26 |
| JP2018517205A (ja) | 2018-06-28 |
| CN110059020A (zh) | 2019-07-26 |
| EP3279788A4 (en) | 2018-04-04 |
| KR102168017B1 (ko) | 2020-10-20 |
| BR112017022547A2 (pt) | 2018-10-16 |
| EP3674877A1 (en) | 2020-07-01 |
| BR112017022547B1 (pt) | 2023-10-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11237728B2 (en) | Method for accessing extended memory, device, and system | |
| CN110781105B (zh) | 存储设备、操作存储设备的方法以及系统 | |
| US20170185528A1 (en) | A data processing apparatus, and a method of handling address translation within a data processing apparatus | |
| US20220179792A1 (en) | Memory management device | |
| JP2018504694A (ja) | 仮想アドレスを使用してアクセスされるキャッシュ | |
| KR20180007374A (ko) | 메모리 채널의 소프트웨어 트레이닝을 수행하는 전자 장치 및 그것의 메모리 채널 트레이닝 방법 | |
| US20170091099A1 (en) | Memory controller for multi-level system memory having sectored cache | |
| JP2019531546A (ja) | 高度dramメモリコントローラの内部キャッシュをバイパスするための方法および装置 | |
| US20130054896A1 (en) | System memory controller having a cache | |
| US10977036B2 (en) | Main memory control function with prefetch intelligence | |
| CN110597742A (zh) | 用于具有持久系统存储器的计算机系统的改进存储模型 | |
| WO2018028629A1 (en) | Pattern based preload engine | |
| US11847074B2 (en) | Input/output device operational modes for a system with memory pools | |
| US8661169B2 (en) | Copying data to a cache using direct memory access | |
| CN105653478B (zh) | 串行闪存控制器、串行闪存控制方法及串行闪存控制系统 | |
| CN109661650B (zh) | 分布式共享存储器系统中的对象一致性 | |
| CN107038021A (zh) | 用于访问随机存取存储器ram的方法、装置和系统 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PA0105 | International application |
St.27 status event code: A-0-1-A10-A15-nap-PA0105 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E90F | Notification of reason for final refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U12-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 6 |
|
| U11 | Full renewal or maintenance fee paid |
Free format text: ST27 STATUS EVENT CODE: A-4-4-U10-U11-OTH-PR1001 (AS PROVIDED BY THE NATIONAL OFFICE) Year of fee payment: 6 |