KR20220099347A - 메모리 장치를 제어하는 가속기, 이를 포함하는 컴퓨팅 시스템 및 가속기의 동작방법 - Google Patents

메모리 장치를 제어하는 가속기, 이를 포함하는 컴퓨팅 시스템 및 가속기의 동작방법 Download PDF

Info

Publication number
KR20220099347A
KR20220099347A KR1020210001476A KR20210001476A KR20220099347A KR 20220099347 A KR20220099347 A KR 20220099347A KR 1020210001476 A KR1020210001476 A KR 1020210001476A KR 20210001476 A KR20210001476 A KR 20210001476A KR 20220099347 A KR20220099347 A KR 20220099347A
Authority
KR
South Korea
Prior art keywords
memory device
accelerator
command
self
host
Prior art date
Application number
KR1020210001476A
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 KR1020210001476A priority Critical patent/KR20220099347A/ko
Priority to US17/406,511 priority patent/US11670355B2/en
Priority to EP21196582.7A priority patent/EP4027248B1/en
Priority to CN202111079951.9A priority patent/CN114721980A/zh
Publication of KR20220099347A publication Critical patent/KR20220099347A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • 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/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1636Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
    • 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/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40618Refresh operations over multiple banks or interleaving
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 

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)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Dram (AREA)

Abstract

메모리 장치를 제어하는 가속기, 이를 포함하는 컴퓨팅 시스템 및 가속기의 동작방법이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 가속기는, 호스트로부터 제공되는 신호를 모니터링하여 메모리 장치의 셀프 리프레쉬 모드로의 진입 및 상기 셀프 리프레쉬 모드로부터의 탈출을 검출하는 신호 제어/모니터링 회로와, 제1 커맨드/어드레스 신호 및 제1 데이터를 생성하여 상기 메모리 장치를 억세스하는 가속기 로직 및 상기 셀프 리프레쉬 모드로의 진입이 검출됨에 따라 상기 제1 커맨드/어드레스 신호 및 상기 제1 데이터를 상기 메모리 장치로 출력하고, 상기 셀프 리프레쉬 모드로부터의 탈출이 검출됨에 따라 상기 호스트로부터 제공된 제2 커맨드/어드레스 신호 및 제2 데이터를 상기 메모리 장치로 출력하는 선택기를 구비하는 것을 특징으로 한다.

Description

메모리 장치를 제어하는 가속기, 이를 포함하는 컴퓨팅 시스템 및 가속기의 동작방법{Accelerator controlling Memory Device, Computing System having the same and Operating Method of Accelerator}
본 개시의 기술적 사상은 가속기에 관한 것으로서, 상세하게는 메모리 장치를 제어하는 가속기 및 이를 포함하는 컴퓨팅 시스템 및 가속기의 동작방법에 관한 것이다.
데이터 처리를 수행하는 시스템(예컨대, 컴퓨팅 시스템)은 중앙 처리 유닛(CPU, central processing unit)를 포함하는 호스트와, 상기 호스트에 의해 데이터가 억세스되는 메모리 장치를 포함할 수 있다. 컴퓨팅 시스템이 처리해야 하는 데이터의 용량이 크게 증가하고 있고, 처리 속도를 향상하기 위한 일 방안으로써 중앙 처리 유닛(CPU)에 의해 처리되던 작업들 중 일부를 다른 처리 장치(예컨대, 가속기(Accelerator) 등)에 일임(offload)함으로써 각 처리 장치의 처리 용량을 감소시키고 데이터 처리 속도를 개선하는 방안이 제안되고 있다.
상기와 같은 컴퓨팅 시스템에서, 호스트와 가속기는 메모리 장치를 공유할 수 있으며, 호스트와 가속기 중 어느 하나가 메모리 장치를 점유하여 이용할 수 있다. 이 때, 가속기가 메모리 장치를 이용함에 따라 호스트가 필요한 상황에서 메모리 장치에 접근하지 못하는 문제가 발생되거나, 호스트와 가속기의 메모리 장치의 사용에서 충돌이 발생될 수 있는 문제가 있다.
본 발명의 기술적 사상이 해결하려는 과제는, 호스트와 가속기가 효율적으로 메모리 장치를 점유함에 따라 데이터 처리 속도를 향상함과 함께, 메모리 장치를 점유함에 있어서 충돌 가능성을 감소함으로써 안정성을 향상할 수 있는 가속기 및 이를 포함하는 컴퓨팅 시스템을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 가속기는, 호스트로부터 제공되는 신호를 모니터링하여 메모리 장치의 셀프 리프레쉬 모드로의 진입 및 상기 셀프 리프레쉬 모드로부터의 탈출을 검출하는 신호 제어/모니터링 회로와, 제1 커맨드/어드레스 신호 및 제1 데이터를 생성하여 상기 메모리 장치를 억세스하는 가속기 로직 및 상기 셀프 리프레쉬 모드로의 진입이 검출됨에 따라 상기 제1 커맨드/어드레스 신호 및 상기 제1 데이터를 상기 메모리 장치로 출력하고, 상기 셀프 리프레쉬 모드로부터의 탈출이 검출됨에 따라 상기 호스트로부터 제공된 제2 커맨드/어드레스 신호 및 제2 데이터를 상기 메모리 장치로 출력하는 선택기를 구비하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 컴퓨팅 시스템은, 하나 이상의 채널들을 포함하는 메모리 장치와, 제1 커맨드/어드레스 신호와 제1 데이터를 생성하여 상기 메모리 장치를 억세스하고, 상기 메모리 장치가 셀프 리프레쉬 모드로 진입하도록 제어하는 셀프 리프레쉬 커맨드를 생성하는 호스트 및 제2 커맨드/어드레스 신호와 제2 데이터를 생성하는 가속기 로직을 포함하고, 상기 호스트가 상기 메모리 장치를 점유하는 동안 상기 제1 커맨드/어드레스 신호 및 상기 제1 데이터를 상기 메모리 장치로 전달하며, 상기 호스트로부터의 상기 셀프 리프레쉬 커맨드를 검출함에 따라 상기 제2 커맨드/어드레스 신호 및 상기 제2 데이터를 상기 메모리 장치로 제공하는 가속기를 구비하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 가속기의 동작방법은, 호스트로부터 생성된 제1 커맨드/어드레스 신호와 제1 데이터를 수신하고 이를 메모리 장치로 전달하는 단계와, 상기 호스트로부터의 신호를 모니터링하여 상기 메모리 장치의 셀프 리프레쉬 모드로의 진입을 검출하는 단계와, 상기 검출 결과를 기초로, 상기 메모리 장치의 억세스에 이용되는 제1 클록 신호를 생성하는 단계 및 상기 제1 클록 신호 및 상기 가속기에서 생성된 제2 커맨드/어드레스 신호 및 제2 데이터를 상기 메모리 장치로 제공함으로써 상기 가속기에 의한 상기 메모리 장치의 억세스를 수행하는 단계를 구비하는 것을 특징으로 한다.
본 발명의 기술적 사상의 메모리 장치를 제어하는 가속기, 이를 포함하는 컴퓨팅 시스템 및 가속기의 동작방법에 따르면, 메모리 장치의 셀프 리프레쉬 모드에서 가속기가 선택적으로 메모리 장치에 대한 메모리 동작을 수행함으로써, 호스트와 가속기가 메모리 장치를 효율적으로 점유하여 이용할 수 있는 효과가 있다.
한편, 본 발명의 기술적 사상의 메모리 장치를 제어하는 가속기, 이를 포함하는 컴퓨팅 시스템 및 가속기의 동작방법에 따르면, 가속기가 호스트로부터의 셀프 리프레쉬 모드의 탈출 지시를 지속적으로 모니터링하고 이를 기초로 메모리 장치의 점유를 호스트로 변경하기 위한 충분한 시간을 확보함으로써, 호스트와 가속기 사이의 충돌 가능성을 감소시키고 메모리 장치 이용의 안정성을 향상할 수 있는 효과가 있다.
도 1은 본 개시의 예시적인 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적인 실시예에 따른 가속기의 구체 구현 예를 나타내는 블록도이다.
도 3은 본 개시의 예시적인 실시예에 따른 컴퓨팅 시스템의 구조를 나타내는 블록도이다.
도 4는 본 개시의 예시적인 실시예에 따른 컴퓨팅 시스템의 동작방법을 나타내는 플로우차트이다.
도 5는 본 개시의 실시예에 따른 컴퓨팅 시스템의 일 동작 예를 나타내는 파형도이다.
도 6 및 도 7은 본 개시의 다른 실시예에 따른 컴퓨팅 시스템의 일 동작 예를 나타내는 파형도이다.
도 8은 본 개시의 다른 실시예에 따른 가속기의 동작방법을 나타내는 플로우차트이다.
도 9는 본 개시의 또 다른 실시예에 따른 가속기의 동작방법을 나타내는 플로우차트이다.
도 10 및 도 11은 본 개시의 예시적인 실시예들에 따라 가속 처리 결과가 호스트에 피드백되는 일 예를 나타내는 플로우차트이다.
도 12는 본 개시의 예시적인 실시예의 컴퓨팅 시스템의 구조의 일 예를 나타내는 도면이다.
도 13은 본 발명의 다른 예시적인 컴퓨팅 시스템을 나타내는 블록도이다.
도 14는 본 개시의 예시적 실시예에 따른 시스템을 포함하는 데이터 센터를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적인 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 1을 참조하면, 컴퓨팅 시스템(10)은 데이터 처리 시스템 또는 메모리 시스템 등으로 다양하게 지칭될 수 있고, 메모리 장치(13)에 대한 데이터 억세스를 요청하는 하나 이상의 장치들을 포함할 수 있다. 억세스를 요청하는 장치들은 메모리 장치(13)에 대해 호스트로서 동작하는 측면에서 호스트 장치로 지칭될 수 있다. 예시적인 실시예에 따라, 도 1에는 컴퓨팅 시스템(10)이 메모리 장치(13)와 함께 호스트(11) 및 가속기(12)를 포함하는 것으로 도시되어 있으나, 상기 가속기(12) 또한 컴퓨팅 시스템(10)에서 호스트 장치로 지칭될 수 있을 것이다.
호스트(11)는 중앙 처리 유닛(CPU, central processing unit)에 상응하거나 중앙 처리 유닛(CPU)을 포함하는 장치일 수 있고, 또한 메모리 장치(13)를 억세스하기 위한 커맨드/어드레스 신호를 생성하는 메모리 컨트롤러(미도시)를 포함할 수 있다. 일 구현 예로서, 호스트(11)는 시스템 온 칩(System on Chip, SoC)등의 반도체 칩으로 구현될 수 있고, 메모리 컨트롤러(미도시)는 중앙 처리 유닛(CPU)에 포함되거나, 중앙 처리 유닛(CPU)과 함께 시스템 온 칩(SoC)에 집적될 수 있다.
한편, 호스트(11) 상에서 실행되는 연산(computing) 및/또는 입출력(I/O) 작업의 적어도 일부가 가속기(12)에 일임(offload)될 수 있다. 일부 실시예들에서, 가속기(12)는, GPU(graphic processing unit), NPU(neural processing unit) 등과 같은 프로그램가능한(programmable) 구성요소(component), IP(intellectual property) 코어 등과 같은 고정된 기능을 제공하는 구성요소 및 FPGA(field programmable gate array) 등과 같은 재구성가능한(reconfigurable) 구성요소 중 적어도 하나를 포함할 수 있다.
메모리 장치(13)는 다양한 종류의 메모리를 포함할 수 있고, 일 예로서 메모리 장치(13)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR(Low Power Double Data Rate) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, RDRAM(Rambus Dynamic Random Access Memory) 등과 같은 동적 랜덤 억세스 메모리(DRAM)일 수 있다. 그러나, 본 발명의 실시예들은 이에 국한될 필요가 없으며, 일 예로서 각각의 메모리 장치는 리프레쉬 동작을 수행하는 다양한 종류의 메모리들을 포함할 수 있고, 일 예로서 MRAM(Magnetic RAM), FRAM(Ferroelectric RAM), PRAM(Phase change RAM) 및 RRAM(Resistive RAM) 등의 저항성 메모리 장치를 포함할 수 있다.
예시적인 실시예에 따라, 가속기(12)는 가속기 로직(12_1) 및 선택기(12_2)를 포함할 수 있다. 가속기 로직(12_1)은 메모리 장치(13)를 억세스하기 위한 메모리 컨트롤러(미도시)를 포함할 수 있고, 가속기 로직(12_1)은 메모리 장치(13)와 커맨드/어드레스 신호(CA) 및 데이터(DQ)를 통신할 수 있다. 한편, 호스트(11)와 가속기(12) 사이에서의 통신은 다양한 프로토콜에 기반하여 수행될 수 있으며, 일 예로서 PCIe(Peripheral Component Interconnect Express) 프로토콜이 적용될 수 있다. 그러나, 본 개시의 실시예들은 이에 국한될 필요는 없으며, 호스트(11)와 가속기(12)는 CXL(compute express link) 프로토콜, XBus 프로토콜, NVLink 프로토콜, Infinity Fabric 프로토콜, CCIX(cache coherent interconnect for accelerators) 프로토콜, CAPI(coherent accelerator processor interface) 등과 같은 다양한 프로토콜을 이용하여 상호 통신할 수도 있을 것이다.
호스트(11)는 메모리 장치가 노멀 모드, 노멀 리프레쉬 모드, 셀프 리프레쉬 모드, 파워다운 모드 등 다양한 동작 모드들로 진입하도록 제어할 수 있다. 본 개시의 예시적인 실시예에 따라, 가속기(12)는 메모리 장치(13)의 다양한 동작 모드들 중에서 선택된 적어도 하나의 동작 모드에서 메모리 장치(13)를 점유하여 이용할 수 있다. 일 예로서, 호스트(11)가 메모리 장치(13)를 점유하는 동안, 선택기(12_2)는 모드 선택신호(Sel_M)에 응답하여 호스트(11)로부터 제공된 커맨드/어드레스 신호(CA) 및 데이터(DQ)를 선택하고 이를 메모리 장치(13)로 제공할 수 있다. 반면에, 가속기(12)가 메모리 장치(13)를 점유하는 동안, 선택기(12_2)는 가속기(12)로부터 제공된 커맨드/어드레스 신호(CA) 및 데이터(DQ)를 선택하고 이를 메모리 장치(13)로 제공할 수 있다.
호스트(11)가 메모리 장치(13)에 접근하지 않는 다양한 케이스들이 존재하고, 일 예로서 노멀 리프레쉬 모드, 셀프 리프레쉬 모드, 파워 다운 모드 등에서 호스트(11)는 메모리 장치(13)에 대한 억세스를 수행하지 않을 수 있다. 호스트(11)는 메모리 장치(13)가 셀프 리프레쉬 모드로 진입하도록 셀프 리프레쉬 커맨드를 제공할 수 있고, 셀프 리프레쉬 모드에서 호스트(11)는 메모리 장치(13)로 제공되는 클록 신호를 비활성화할 수 있다. 본 개시의 예시적인 실시예에 따라, 메모리 장치(13)의 셀프 리프레쉬 모드에서 가속기(12)가 메모리 장치(13)를 점유하여 이용할 수 있고, 선택기(12_2)는 가속기(12)로부터 제공된 커맨드/어드레스 신호(CA) 및 데이터(DQ)를 선택하고 이를 메모리 장치(13)로 제공할 수 있다.
가속기(12)는 호스트(11)로부터의 커맨드 및/또는 신호를 모니터링함으로써 메모리 장치(13)의 동작 모드를 판단할 수 있다. 예컨대, 가속기(12)는 호스트(11)로부터의 커맨드/어드레스 신호(CA) 및 다른 신호들 중 적어도 하나를 모니터링함으로써 셀프 리프레쉬 모드로의 진입 및 셀프 리프레쉬 모드로부터의 탈출을 검출할 수 있으며, 검출 결과를 기초로 모드 선택신호(Sel_M)를 생성할 수 있다. 일 예로서, 셀프 리프레쉬 모드에서 선택기(12_2)는 가속기(12)로부터 제공된 커맨드/어드레스 신호(CA) 및 데이터(DQ)를 메모리 장치(13)로 제공할 수 있다. 반면에, 셀프 리프레쉬 모드 이외의 다른 모드에서, 선택기(12_2)는 호스트(11)로부터 제공된 커맨드/어드레스 신호(CA) 및 데이터(DQ)를 메모리 장치(13)로 제공할 수 있다.
한편, 메모리 장치(13)는 셀 어레이(13_1), 리프레쉬 제어기(13_2) 및 제어 로직(13_3)을 포함할 수 있다. 셀 어레이(13_1)는 다수 개의 워드라인들을 포함하고 각각의 워드라인에는 다수 개의 메모리 셀들이 연결될 수 있다. 메모리 장치(13)는 리프레쉬가 수행될 워드라인을 선택하기 위한 어드레스를 생성하는 어드레스 카운터(미도시)를 더 포함할 수 있고, 노멀 리프레쉬 동작 및 셀프 리프레쉬 동작을 통해 상기 다수 개의 워드라인들이 순차적으로 선택되어 리프레쉬될 수 있다.
리프레쉬 제어기(13_2)는 노멀 리프레쉬 모드에서 리프레쉬 커맨드에 응답하여 상기 워드라인들에 대한 리프레쉬 동작을 제어할 수 있다. 또한, 리프레쉬 제어기(13_2)는 셀프 리프레쉬 모드에서 호스트(11)의 개입 없이 상기 워드라인들에 대한 리프레쉬 동작을 제어할 수 있다. 제어 로직(13_3)은 메모리 장치(13)의 전반적인 동작을 제어할 수 있고, 일 예로서 호스트(11) 또는 가속기(12)로부터의 커맨드/어드레스 신호(CA)에 대한 디코딩 처리에 기반하여 메모리 장치(13)의 동작을 제어하는 커맨드 디코더(CMD Dec)를 포함할 수 있다. 메모리 장치의 동작 모드들에 따라, 제어 로직(13_3)은 호스트(11)로부터의 커맨드/어드레스 신호(CA)를 디코딩하거나 가속기(12)로부터의 커맨드/어드레스 신호(CA)를 디코딩하여 데이터 기록 및 독출 등의 각종 메모리 동작을 수행할 수 있다.
본 개시의 예시적인 실시예에 따라, 호스트(11)에 의해 셀프 리프레쉬 모드가 지시되더라도, 메모리 장치(13)는 가속기(12)로부터 커맨드/어드레스 신호(CA) 및 데이터(DQ)를 수신할 수 있으며, 가속기(12)로부터의 클록 신호에 응답하여 메모리 동작을 수행할 수 있다. 또한, 호스트(11)에 의해 지시된 셀프 리프레쉬 모드에서, 메모리 장치(13)는 가속기(12)로부터의 제어에 기초하여 리프레쉬 동작(예컨대, 노멀 리프레쉬 동작)을 수행할 수 있다. 즉, 호스트(11)가 셀프 리프레쉬 커맨드를 제공하더라도, 메모리 장치(13)는 실질적으로 셀프 리프레쉬 모드로 진입하지 않고, 외부(예컨대, 가속기(12))로부터의 클록 신호, 커맨드/어드레스 신호(CA)를 기초로 노멀 메모리 동작을 수행할 수 있다.
한편, 가속기(12)는 호스트(11)로부터의 신호를 모니터링함으로써 셀프 리프레쉬 모드로부터의 탈출(Exit) 여부를 검출할 수 있다. 예컨대, 가속기(12)는 메모리 장치(13)를 점유하여 이용하는 도중, 호스트(11)로부터의 커맨드/어드레스(CA) 또는 호스트(11)로부터의 다른 신호(예컨대, 칩 선택 신호(CS_n))를 기초로 상기 탈출(Exit) 여부를 검출할 수 있다. 일 예로서, 칩 선택 신호(CS_n)의 로직 상태의 변동을 기초로 셀프 리프레쉬 모드의 탈출이 검출된 경우, 가속기(12)는 메모리 장치(13)에 대한 점유를 호스트(11)로 변경하기 위한 일련의 동작들을 수행할 수 있다. 일 예로서, 가속기(12)는 메모리 장치(13)로 제공되는 클록 신호의 생성 동작을 차단할 수 있으며, 또한 선택기(12_2)는 호스트(11)로부터 제공된 커맨드/어드레스 신호(CA) 및 데이터(DQ)를 선택하고 이를 메모리 장치(13)로 제공하도록 모드 선택신호(Sel_M)를 생성할 수 있다.
상기와 같은 본 개시의 예시적인 실시예에 따르면, 호스트(11)가 메모리 장치(13)를 이용하지 않는 특정 모드(예컨대, 셀프 리프레쉬 모드)의 구간 동안 가속기(12)가 메모리 장치(13)를 점유하여 이용하므로, 호스트(11)와 가속기(12) 사이에서의 억세스 충돌을 방지하여 시스템을 안정적으로 운영할 수 있다. 일 구현 예로서, 컴퓨팅 시스템(10)은 메모리 장치(13)가 장착되는 하나 이상의 슬롯들(예컨대, 메모리 장치(13)가 DIMM(dual-inline memory module) 등의 메모리 모듈인 경우에는 DIMM 슬롯들)을 포함하는 메인 보드(미도시)를 포함할 수 있고, 가속기(12)가 DIMM 슬롯에 장착되어 셀프 리프레쉬 모드에서 선택적으로 메모리 장치(13)를 억세스할 수 있다.
한편, 메모리 장치(13)는 DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, DDR4 SDRAM, DDR5 SDRAM, LPDDR SDRAM, LPDDR2 SDRAM, LPDDR3 SDRAM, LPDDR4 SDRAM, LPDDR4X, SDRAM, LPDDR5 SDRAM, GDDR SGRAM(synchronous graphics random access memory), GDDR2 SGRAM, GDDR3 SGRAM, GDDR4 SGRAM, GDDR5 SGRAM, GDDR6 SGRAM 등과 같은 다양한 스펙들을 통해 호스트(11) 및 가속기(12)와 통신할 수 있다. 가속기(12)는 상기 나열된 다양한 스펙들 중 어느 하나의 스펙에서 정의된 신호들을 기초로 셀프 리프레쉬 모드의 탈출(Exit)을 검출 또는 판단할 수 있고, 일 예로서 DDR5 에서 정의된 칩 선택 신호(CS_n)를 모니터링하여 상기 탈출(Exit) 여부를 판단하거나, DDR4 이하에서 정의된 별도의 셀프 리프레쉬 탈출 커맨드를 모니터링함으로써 상기 탈출(Exit) 여부를 판단할 수 있다. 즉, 가속기(12)는 셀프 리프레쉬 모드로부터의 탈출 여부를 주기적 또는 지속적으로 모니터링하고, 호스트(11)로부터 유효한 커맨드가 제공되기 전에 메모리 동작을 멈추고 메모리 장치(13)에 대한 점유를 호스트(11)로 변경하는 동작을 완료함으로써, 메모리 장치(13) 사용의 안정성을 보장할 수 있다.
한편, 상기한 실시예에서는 가속기(12)가 셀프 리프레쉬 모드에서 선택적으로 메모리 장치(13)를 점유하는 것으로 설명되었으나, 본 개시의 실시예들은 이에 국한될 필요가 없다. 예컨대, 전술한 바와 같이 파워다운 모드 등 호스트(11)가 메모리 장치(13)에 대한 억세스를 수행하지 않는 모드들이 존재할 수 있고, 상기 다양한 모드들 중 일부에서 본 개시의 실시예가 적용될 수도 있을 것이다.
도 2는 본 개시의 예시적인 실시예에 따른 가속기의 구체 구현 예를 나타내는 블록도이다.
도 2를 참조하면, 컴퓨팅 시스템(100)은 호스트(110), 가속기(120) 및 메모리 장치(130)를 포함할 수 있다. 메모리 장치(130)는 하나 이상의 메모리 칩들을 포함할 수 있으며, 예시적인 실시예에서 메모리 장치(130)는 하나 이상의 메모리 칩들을 포함하는 반도체 패키지일 수 있다. 또는, 메모리 장치(130)는 하나 이상의 메모리 칩들이 모듈 보드 상에 장착된 메모리 모듈일 수도 있다. 도 2에서는 메모리 장치(130)가 하나 이상의 메모리 모듈들(예컨대, DIMM 들)을 포함하는 예가 도시된다.
가속기(120)는 연산 칩(121), 신호 제어/모니터링 회로(122), 및 하나 이상의 선택기들로서 제1 및 제2 선택기들(123, 124)을 포함할 수 있다. 도 2에서는, 제1 및 제2 선택기들(123, 124) 각각이 멀티플렉서(MUX)를 포함하는 예가 도시된다. 연산 칩(121)은 가속기 로직(121_1) 및 클록 생성기(121_2)를 포함할 수 있고, 가속기 로직(121_1)은 전술한 예시에서와 같이 가속기(120) 내의 전반적인 동작을 제어할 수 있고, 메모리 장치(130)에 대한 억세스를 수행함으로써 가속(Accelerating) 작업을 수행할 수 있다. 예컨대, 가속기 로직(121_1)은 메모리 장치(130)를 억세스하기 위한 커맨드/어드레스 신호(CA)를 생성하는 메모리 컨트롤러(미도시)를 포함할 수 있다. 또한, 가속기 로직(121_1)은 메모리 장치(130)로부터의 데이터를 이용한 연산 처리를 수행할 수 있고, 연산 처리 결과를 내부에 저장하거나 또는 메모리 장치(130)에 저장할 수 있다.
클록 생성기(121_2)는 하나 이상의 클록 신호를 생성하고 이를 메모리 장치(130)에 제공할 수 있다. 일 구현 예에 따라 클록 생성기(121_2)는 지연 동기 루프(Delay Locked Loop, DLL)를 포함할 수 있고, 가속기(120)가 메모리 장치(130)를 점유하는 동안에 지연 동기 루프(DLL)가 활성화됨에 따라 클록 신호가 메모리 장치(130)로 제공될 수 있다. 가속기 로직(121_1)에서 생성된 커맨드/어드레스 신호와 클록 생성기(121_2)에서 생성된 클록 신호가 메모리 장치(130)로 함께 제공될 수 있다.
한편, 메모리 장치(130)는 메모리 모듈일 수 있으며, 전술한 실시예에 따라 다양한 종류의 스펙을 기초로 호스트(110) 및 가속기(120)와 각각 통신할 수 있다. 예시적인 실시예에서, 메모리 장치(130)가 DDR5 스펙에 따라 호스트(110) 및 가속기(120)와 통신하는 경우, 메모리 장치(130)는 적어도 두 개의 채널들(또는, 서브 채널들)을 포함할 수 있으며, 각종 신호들을 전달하기 위한 경로는 상기 채널들을 기초로 구현될 수 있다. 신호 전송의 일 예로서, 커맨드/어드레스 신호(CA) 및 데이터(DQ)는 적어도 두 개의 채널들에 대해 별개의 경로를 통해 메모리 장치(130)로 전달될 수 있다. 또한, 일 구현 예에 따라, 메모리 장치(130)는 제1 채널(CH A) 및 제2 채널(CH B)을 포함하는 두 개의 채널들을 포함할 수 있고, 제1 및 제2 선택기들(123, 124)이 제1 채널(CH A) 및 제2 채널(CH B)에 대응하여 배치될 수 있다.
신호 제어/모니터링 회로(122)는 지능 소자(Intellectual Property)로 구현될 수 있고 신호 제어/모니터링 IP로 지칭될 수 있다. 신호 제어/모니터링 회로(122)는 호스트(110)로부터 제공되는 각종 신호들을 수신하고 이를 제1 및 제2 선택기들(123, 124)로 각각 제공할 수 있다. 또한, 신호 제어/모니터링 회로(122)는 호스트(110)로부터 제공되는 각종 신호들을 모니터링한 결과를 기초로 제1 및 제2 선택기들(123, 124)를 제어할 수 있고, 전술한 실시예에서의 제1 및 제2 모드 선택신호(Sel_M1, Sel_M2)를 생성할 수 있다.
일 동작 예로서, 신호 제어/모니터링 회로(122)는 호스트(110)로부터의 커맨드/어드레스 신호를 모니터링하고, 셀프 리프레쉬 커맨드의 수신에 응답하여 가속기(120)가 메모리 장치(130)를 점유하기 위한 각종 내부 동작을 수행할 수 있다. 일 예로서, 신호 제어/모니터링 회로(122)는 제1 및 제2 모드 선택신호(Sel_M1, Sel_M2)를 제1 및 제2 선택기들(123, 124)로 제공함으로써, 가속기(120)에서 생성된 커맨드/어드레스 신호(CA), 데이터(DQ) 및 클록 신호가 메모리 장치(130)로 제공되도록 제어 동작을 수행할 수 있다. 또한, 신호 제어/모니터링 회로(122)는 셀프 리프레쉬 커맨드의 수신에 응답하여 연산 칩(121)을 제어함으로써 커맨드/어드레스 신호(CA), 데이터(DQ) 및 클록 신호가 생성되도록 제어 동작을 수행할 수 있다.
셀프 리프레쉬 모드 동안, 가속기(120)는 메모리 장치(130)를 점유하여 이용할 수 있고, 다양한 종류의 억세스 동작을 메모리 장치(130)에 대해 수행할 수 있다. 일 예로서, 가속기(120)가 메모리 장치(130)에 데이터를 기록하거나, 메모리 장치(130)로부터 독출된 데이터를 이용하여 연산 처리를 수행하고 그 결과를 메모리 장치(130)에 저장할 수 있으며, 이에 따라 가속기(120)가 메모리 장치(130)를 점유하는 동안 메모리 장치(130)에 저장된 데이터가 변경될 수 있다. 가속기(120)에 의한 메모리 장치(130)의 점유가 완료된 후, 변경된 데이터가 호스트(110)로 피드백될 수 있으며, 일 예로서 호스트(110)는 메모리 장치(130)를 억세스하여 상기 변경된 데이터를 수신할 수 있다. 또는, 가속기(120) 내의 연산 칩(121) 내에 상기 변경된 데이터가 저장될 수 있고, 가속기(120)에 의한 메모리 장치(130)의 점유가 완료된 후, 호스트(110)는 가속기(120) 내에 저장된 변경된 데이터를 독출할 수 있을 것이다.
한편, 신호 제어/모니터링 회로(122)는 호스트(110)로부터의 커맨드/어드레스 신호 또는 하나 이상의 다른 신호들을 모니터링함으로써 셀프 리프레쉬 모드의 탈출을 검출할 수 있다. 일 동작 예로서, DDR5 스펙에 따른 칩 선택 신호(CS_n)가 호스트(110)로부터 제공될 수 있고, 신호 제어/모니터링 회로(122)는 칩 선택 신호(CS_n)의 로직 상태의 변동(예컨대, 로직 로우로부터 로직 하이로의 변동)을 검출함으로써 셀프 리프레쉬 모드의 탈출 여부를 판단할 수 있다. 신호 제어/모니터링 회로(122)는 셀프 리프레쉬 모드의 탈출을 검출하고 연산 칩(121) 및 제1 및 제2 선택기들(123, 124)을 제어할 수 있으며, 일 예로서 연산 칩(121)에서의 클록 생성 동작이 비활성화될 수 있으며, 제1 및 제2 선택기들(123, 124)에 대한 제어를 기초로 호스트(110)로부터의 커맨드/어드레스 신호(CA) 및 데이터(DQ)가 제1 및 제2 선택기들(123, 124)을 통해 메모리 장치(130)로 제공될 수 있다.
도 3은 본 개시의 예시적인 실시예에 따른 컴퓨팅 시스템의 구조를 나타내는 블록도이다. 도 3의 컴퓨팅 시스템(100)에서는 메모리 장치(130)로서 DDR5 스펙에 따른 메모리 모듈의 일 구현 예가 도시된다.
도 2 및 도 3을 참조하면, 호스트(110)는 CPU를 포함할 수 있고, 가속기(120)는 호스트(110)와 메모리 장치(130) 사이에 배치되어 가속 작업을 수행할 수 있으며, 도 3의 예에서는 가속기(120)가 FPGA(field programmable gate array)를 포함하는 예가 도시된다. 메모리 장치(130)는 모듈 보드 상에 장착된 다수의 메모리 칩들(131)을 포함할 수 있으며, 또한 다수의 메모리 칩들(131)에 대한 제어 동작을 수행하는 제어 칩(예컨대, Registering Clock Driver(RCD), 132) 및 전원관리 집적회로(Power Management Integrated Circuit(PMIC), 133)를 포함할 수 있다. 또한, 메모리 장치(130)는 다수 개의 채널들로서 제1 채널(CH A) 및 제2 채널(CH B)을 포함할 수 있고, 일 예로서 제1 채널(CH A)에는 메모리 장치(130)의 일부의 메모리 칩들이 포함될 수 있고, 제2 채널(CH B)에는 메모리 장치(130)의 다른 일부의 메모리 칩들이 포함될 수 있다.
호스트(110) 및 가속기(120)는 제어 칩(132)을 통해 다수의 메모리 칩들(131)을 제어할 수 있다. 일 예로서, 호스트(110) 및 가속기(120)의 각종 신호들이 제어 칩(132)을 통해 다수의 메모리 칩들(131)로 제공될 수 있고, 전술한 실시예들에서의 커맨드/어드레스 신호(CA) 및 클록 신호는 제어 칩(132)을 통해 다수의 메모리 칩들(131)로 제공될 수 있으며, 일 구현 예에 따라 데이터(DQ)는 제어 칩(132)을 경유함이 없이 다수의 메모리 칩들(131)로 직접 제공될 수 있다. 본 개시의 예시적인 실시예에서, 제어 칩(132)은 호스트(110)가 메모리 장치(130)를 점유하는 동안 호스트(110)로부터의 커맨드/어드레스 신호(CA) 및 클록 신호를 다수의 메모리 칩들(131)로 전달할 수 있으며, 가속기(120)가 메모리 장치(130)를 점유하는 동안 가속기(120)로부터의 커맨드/어드레스 신호(CA) 및 클록 신호를 다수의 메모리 칩들(131)로 전달할 수 있다.
한편, 전원관리 집적회로(133)는 메모리 장치(130) 내에서 이용되는 전원 전압을 생성하고, 생성된 전원 전압을 다수의 메모리 칩들(131)로 제공할 수 있다. 제어 칩(132)은 전원관리 집적회로(133)를 제어할 수 있으며, 전원 전압을 기초로 다수의 메모리 칩들(131) 각각은 리프레쉬 동작 및 노멀 메모리 동작 등을 수행할 수 있다
한편, 도 3에는 도시되지 않았으나 메모리 장치(130)는 모듈 보드 상에 장착되는 SPD(Serial Presence Detect) 칩(미도시)을 더 포함할 수 있고, SPD 칩은 프로그램 가능 읽기 전용 기억 장치(EEPROM)를 포함할 수 있다. SPD 칩은 메모리 장치(130)의 초기 정보 또는 장치 정보(Device Information)를 포함할 수 있으며, 예시적으로 SPD 칩은 메모리 장치(130)의 모듈 형태, 모듈 구성, 저장 용량, 모듈 종류, 실행 환경 등과 같은 초기 정보 또는 장치 정보를 포함할 수 있다.
한편, 도 3의 메모리 모듈이 다수의 채널들(제1 채널(CH A) 및 제2 채널(CH B)을 포함함에 따라, 본 개시의 실시예들은 메모리 모듈에 다양한 형태로 적용될 수 있다. 일 예로서, 가속기(120)는 제1 채널(CH A) 및 제2 채널(CH B) 중 어느 하나의 채널을 선택적으로 억세스할 수 있고, 이에 따라 제1 채널(CH A)은 호스트(110)에 전용되는 반면에, 제2 채널(CH B)은 전술한 실시예들에 따라 호스트(110) 및 가속기(120) 중 어느 하나가 선택적으로 점유하여 이용할 수도 있을 것이다. 예컨대, 셀프 리프레쉬 모드의 진입에 따라, 제1 채널(CH A)에서는 메모리 칩들(131)이 자체적으로 셀프 리프레쉬를 수행하는 반면에, 제2 채널(CH B)의 메모리 칩들(131)은 가속기(120)의 제어에 기반하여 메모리 동작 및 노멀 리프레쉬 동작이 수행되도록 컴퓨팅 시스템(100)이 구현될 수도 있을 것이다.
도 4는 본 개시의 예시적인 실시예에 따른 컴퓨팅 시스템의 동작방법을 나타내는 플로우차트이다. 도 4에서는 컴퓨팅 시스템에 포함되는 구성 요소로서 호스트(또는, CPU), 가속기 및 메모리 장치가 예시된다. 또한, 예시적인 실시예에서, 호스트 및 가속기 중 적어도 하나에 포함되는 메모리 컨트롤러와 메모리 장치를 포함하는 구성이 메모리 시스템으로 정의될 수도 있을 것이다.
도 4를 참조하면, 호스트는 메모리 장치를 억세스하기 위한 노멀 요청(또는, 메모리 요청)을 생성하고 이를 메모리 장치로 제공할 수 있다(S11). 본 개시의 실시예에서, 호스트와 메모리 장치 사이에 가속기가 배치되는 구성이 제안됨에 따라, 호스트로부터의 노멀 요청은 가속기를 통해 메모리 장치로 제공될 수 있고, 메모리 장치는 호스트로부터의 노멀 요청에 대응하는 노멀 메모리 동작을 수행할 수 있다(S12).
이후, 호스트는 메모리 장치가 셀프 리프레쉬 모드로 진입하도록 셀프 리프레쉬 커맨드를 제공할 수 있다(S13). 가속기는 호스트로부터의 신호들에 대한 모니터링을 수행하고, 호스트가 셀프 리프레쉬 커맨드를 출력함에 따라 셀프 리프레쉬 모드로의 진입을 검출할 수 있고(S14), 가속기가 메모리 장치를 점유하여 이용할 수 있도록 클록 신호를 생성하고 선택기(MUX)를 제어하는 동작을 수행할 수 있다(S15).
가속기는 메모리 장치를 점유하는 동안 다양한 동작들을 제어할 수 있으며, 상기 생성된 클록 신호를 메모리 장치로 제공할 수 있다(S16). 또한, 가속기는 메모리 장치에 대한 억세스를 수행할 수 있고, 노멀 요청을 생성하여 메모리 장치로 제공할 수 있다(S17). 메모리 장치는 가속기로부터의 노멀 요청에 대응하는 노멀 메모리 동작을 수행할 수 있다(S18). 또한, 가속기는 메모리 장치의 리프레쉬 동작을 제어할 수 있으며, 호스트에 의해 지시되는 셀프 리프레쉬 모드의 구간에서 메모리 장치의 다수의 워드라인들을 리프레쉬하기 위한 리프레쉬 커맨드를 메모리 장치로 제공할 수 있다(S19). 메모리 장치는 가속기로부터의 리프레쉬 커맨드에 응답하여 다수의 워드라인들에 대한 리프레쉬 동작을 순차적으로 수행할 수 있다(S20).
한편, 호스트는 메모리 장치가 셀프 리프레쉬 모드로부터 탈출할 것을 지시하는 신호를 출력할 수 있다(S21). 본 개시의 예시적인 실시예에서, 셀프 리프레쉬 모드의 탈출을 요청하는 신호를 탈출(Exit) 신호(또는, 탈출 커맨드)로 지칭할 수 있고, 상기 탈출(Exit) 신호는 다양한 종류의 스펙들에 의해 정의되는 신호를 기초로 생성될 수 있다. 일 예로서, 전술한 실시예에 따라 메모리 장치가 DDR5 스펙에 기초하는 경우, 칩 선택 신호의 로직 상태의 변동을 기초로 가속기는 셀프 리프레쉬 모드의 탈출을 검출할 수 있다(S22).
가속기는 상기 탈출(Exit) 신호의 검출에 응답하여 메모리 장치의 점유를 호스트로 변경하기 위한 일련의 동작들을 수행할 수 있으며, 일 예로서 메모리 장치로 제공되는 클록 신호를 비활성화하고 선택기(MUX)를 제어하는 동작을 수행할 수 있다(S23). 선택기(MUX)에 대한 제어를 통해 호스트로부터의 커맨드/어드레스 신호(CA) 및 데이터(DQ)가 메모리 장치로 제공될 수 있고, 호스트가 다시 메모리 장치를 점유함에 따라 노멀 요청을 메모리 장치로 제공할 수 있다(S24).
도 5는 본 개시의 실시예에 따른 컴퓨팅 시스템의 일 동작 예를 나타내는 파형도이다.
도 5를 참조하면, 호스트는 메모리 장치의 데이터를 억세스하기 위한 다양한 신호들을 생성할 수 있고, 일 예로서 소정의 DDR 스펙에 따른 클록 신호(CK), 칩 선택 신호(CS_n), 커맨드/어드레스 신호(CA)를 생성하여 출력할 수 있다. 커맨드/어드레스 신호(CA)는 다수의 비트들을 포함할 수 있고, 상기 DDR 스펙의 Command truth table을 기초로 상기 다수의 비트들의 로직 상태에 따른 커맨드(CMD)가 정의될 수 있다. 일 예로서, 커맨드/어드레스 신호(CA)의 다수의 비트들의 특정 로직 상태는 셀프 리프레쉬 커맨드(SRE)를 정의할 수 있고, 칩 선택 신호(CS_n)는 유효한 커맨드가 인가되는 타이밍에 대응하여 로직 로우 상태를 가질 수 있으며, 또한 셀프 리프레쉬 커맨드(SRE)가 제공됨에 따라 메모리 장치가 셀프 리프레쉬 모드로 동작하는 동안 칩 선택 신호(CS_n)는 로직 로우 상태를 유지할 수 있다.
한편, 본 개시의 실시예에 따른 가속기는 메모리 장치에 대한 억세스를 수행하기 위해 호스트와 동일 또는 유사한 신호들을 생성할 수 있고, 일 예로서 칩 선택 신호(CS_n) 및 커맨드/어드레스 신호(CA)를 생성하여 출력할 수 있다. 도 5에 도시되지는 않았으나, 가속기는 메모리 장치에 대한 억세스를 수행함에 있어서 신호들의 동기를 위한 클록 신호를 더 생성하여 출력할 수 있다. 가속기는 호스트와 동일한 DDR 스펙에 따라 메모리 장치를 억세스할 수 있고, 이에 따라 가속기에 의해 출력되는 커맨드/어드레스 신호(CA)의 로직 상태에 따른 커맨드(CMD)는 호스트의 경우에서와 동일하게 정의될 수 있다.
가속기는 호스트로부터의 커맨드/어드레스 신호(CA)를 모니터링함으로써 셀프 리프레쉬 커맨드(SRE)를 검출할 수 있다. 가속기는 셀프 리프레쉬 커맨드(SRE)의 검출에 응답하여 메모리 장치를 점유하기 위한 일련의 동작들을 수행할 수 있고, 전술한 실시예들에 따라 지연 동기 루프(DLL)를 활성화하여 클록 신호를 생성할 수 있으며, 또한 가속기로부터 생성된 커맨드/어드레스 신호와 데이터가 메모리 장치로 제공되도록 선택기를 제어할 수 있다.
셀프 리프레쉬 커맨드(SRE)가 출력된 이후 소정의 시간 후에 칩 선택 신호(CS_n)가 tCSL 구간 동안 로직 로우 상태를 유지할 수 있고, 가속기는 tCSL 구간 동안 메모리 장치에 대한 억세스를 수행할 수 있다. 가속기는 tCSL 구간 동안 메모리 장치에 대한 기록/독출 등의 메모리 동작을 제어할 수 있고, 또한 메모리 장치의 다수의 워드라인들에 대한 리프레쉬 수행을 위한 커맨드를 제공할 수 있다. 즉, 가속기는 tCSL 구간 동안 유효한 칩 선택 신호(CS_n)와 유효한 커맨드/어드레스 신호(CA)를 출력할 수 있고, 이에 따라 메모리 동작 및 리프레쉬 동작을 제어하기 위한 유효한 커맨드가 메모리 장치로 제공될 수 있다.
한편, 가속기는 호스트로부터의 신호(예컨대, 칩 선택 신호(CS_n))의 로직 상태를 모니터링함으로써 셀프 리프레쉬 모드의 탈출 여부를 검출할 수 있다. 예컨대, DDR5 스펙에서 칩 선택 신호(CS_n)의 로직 상태가 로직 로우에서 로직 하이로 변동되는 경우가 셀프 리프레쉬 모드로부터의 탈출을 나타낼 수 있고, 칩 선택 신호(CS_n)는 제1 구간(tCSH_SRexit)동안 로직 하이를 유지한 후 제2 구간(tCSL_SRexit) 동안 로직 로우를 유지할 수 있다. 또한, 호스트는 칩 선택 신호(CS_n)의 로직 상태의 변동 이후 최소 3 회 노 오퍼레이션 커맨드(NOP)를 제공할 수 있으며, 가속기는 칩 선택 신호(CS_n)의 로직 상태의 변동 시점으로부터 셀프 리프레쉬 모드의 탈출을 위한(또는, 메모리 장치의 점유를 호스트로 변경하기 위한) 준비를 수행할 수 있다.
한편, 가속기는 칩 선택 신호(CS_n)에 대한 모니터링에 기초하여 유효한 커맨드/어드레스 신호(CA)를 출력하는 것을 차단하고, 클록 신호를 생성하는 동작을 비활성화할 수 있으며, 유효한 커맨드(CMD)를 출력하지 않을 수 있다. 일 동작 예로서, 가속기는 호스트와의 얼라인(align)을 위해 노 오퍼레이션 커맨드(NOP)를 생성하여 출력할 수도 있다.
상기와 같은 본 개시의 실시예에 따르면, 가속기가 메모리 장치를 점유하여 이용하는 동안 셀프 리프레쉬 모드의 탈출 여부가 모니터링되고, 메모리 장치의 점유를 호스트로 변경하기 위한 준비를 충분한 시간 동안 수행할 수 있으므로, 메모리 장치를 안정적으로 점유하여 이용할 수 있다. 일 예로서, DDR5 스펙에서 마지막 노 오퍼레이션 커맨드(NOP)가 인가된 이후 실제 유효한 커맨드가 인가되는 최소 시간 구간으로서 tXS가 정의될 수 있는데, 메모리 장치의 점유를 호스트로 변경하기 위한 일련의 동작들이 상기한 칩 선택 신호(CS_n)의 상태의 변동 시점으로부터 tXS 구간 까지 수행될 수 있으므로, 가속기는 안정적으로 메모리 장치를 점유하고, 또한 메모리 장치의 점유를 호스트로 안정적으로 변경할 수 있다.
도 6 및 도 7은 본 개시의 다른 실시예에 따른 컴퓨팅 시스템의 일 동작 예를 나타내는 파형도이다. 도 6 및 도 7에서는 가속기가 메모리 장치를 점유하는 다양한 구간들이 예시된다. 도 6 및 도 7에 도시된 실시예에서의 동작 예를 설명함에 있어서, 도 5에 도시된 신호들과 동일한 신호들에 대해서는 구체적인 설명이 생략된다.
도 6을 참조하면, 전술한 실시예에서와 동일하게 호스트는 셀프 리프레쉬 커맨드(SRE)를 나타내는 커맨드/어드레스 신호(CA)를 출력할 수 있고, 메모리 장치가 셀프 리프레쉬 모드를 나타내는 구간 동안 칩 선택 신호(CS_n)는 로직 로우 상태를 유지할 수 있다. 가속기는 커맨드/어드레스 신호(CA)를 모니터링한 결과를 기초로, 셀프 리프레쉬 커맨드(SRE)의 검출에 응답하여 메모리 장치를 점유하여 이용하기 위한 일련의 준비 동작을 수행할 수 있고, 적어도 tCSL 구간 동안 메모리 장치를 점유하여 기록/독출 등의 메모리 동작이나 연산 처리 동작 등을 수행할 수 있다.
전술한 실시예에 따라, 가속기는 호스트로부터의 칩 선택 신호(CS_n)의 로직 상태를 모니터링함으로써 셀프 리프레쉬 모드의 탈출 여부를 검출할 수 있고, 칩 선택 신호(CS_n)의 로직 상태가 변동되는 시점은 A로 가정될 수 있다. 칩 선택 신호(CS_n)는 제1 구간(tCSH_SRexit) 동안 로직 하이를 유지한 후 제2 구간(tCSL_SRexit) 동안 로직 로우를 유지할 수 있고, 첫 번째 노 오퍼레이션 커맨드(NOP)가 인가되는 시점을 B, 세 번째 노 오퍼레이션 커맨드(NOP)가 인가되는 시점을 C 로 정의할 수 있다. 또한, tXS 의 구간 이후 유효한 커맨드(CMD)가 인가되는 시점을 D 로 정의할 수 있다.
가속기가 메모리 장치를 점유하는 시간을 증가시킴으로써 가속기에 의한 메모리 장치의 활용도를 증가시킬 수 있고, 도 6의 예에서는 가속기가 시점 A와 시점 B 사이의 구간 동안 메모리 장치에 대한 억세스를 유지하는 예가 도시된다. 예컨대, 가속기는 칩 선택 신호(CS_n)의 로직 상태의 변동에 응답하여 즉각적으로 호스트에게 점유를 제공하기 위한 일련의 동작들을 수행하는 것이 아니라, 시점 A와 시점 B 사이의 구간 동안 유효한 칩 선택 신호(CS_n)의 출력을 유지하고, 유효한 커맨드/어드레스 신호(CA)를 메모리 장치로 전송할 수 있다. 가속기는, 적어도 시점 B 내지 시점 D 사이의 구간 동안 메모리 장치의 점유를 호스트로 변경하기 위한 준비를 수행할 수 있다.
한편, 도 7에서는 가속기가 시점 B 이후의 구간 동안 메모리 장치를 점유하여 이용하는 예가 도시된다. 일 예로서, 전술한 바와 같이 칩 선택 신호(CS_n)의 로직 상태가 로직 로우에서 로직 하이로 변동됨에 따라 셀프 리프레쉬 모드의 탈출이 검출될 수 있고, 칩 선택 신호(CS_n)는 제1 구간(tCSH_SRexit) 동안 로직 하이를 유지한 후 제2 구간(tCSL_SRexit) 동안 로직 로우를 유지할 수 있다. 가속기가 시점 A 및 시점 B가 경과한 이후에도 메모리 장치에 대한 억세스를 수행할 수 있고, 일 예로서 시점 B 의 이후에도 유효한 칩 선택 신호(CS_n)의 출력을 유지하고, 유효한 커맨드/어드레스 신호(CA)를 메모리 장치로 전송할 수 있다. 도 7의 예에서는 가속기가 시점 B와 시점 C 사이의 구간 동안 메모리 장치에 대한 억세스를 수행하는 예가 도시된다. 예컨대, 가속기는 시점 B와 시점 C 사이의 구간 동안 유효한 칩 선택 신호(CS_n)를 제공할 수 있고, 또한 유효한 커맨드/어드레스 신호(CA)를 출력할 수 있다.
예시적인 실시예에 따라, 가속기는 다양한 신호들에 응답하여 메모리 장치의 점유를 호스트로 변경하기 위한 일련의 동작들을 수 있다. 예컨대, 가속기는 칩 선택 신호(CS_n)의 로직 하이로의 변동 시점 이후 일정 시간이 경과된 후에 메모리 장치에 대한 억세스를 중단하고 메모리 장치의 점유 변경을 위한 동작들을 수행할 수 있다. 또는, 가속기는 제1 구간(tCSH_SRexit)이 경과하여 칩 선택 신호(CS_n)가 로직 로우로 변동하는 시점에 응답하여 메모리 장치에 대한 억세스를 중단하거나, 또는 노 오퍼레이션 커맨드(NOP)의 수신에 응답하여 메모리 장치에 대한 억세스를 중단함으로써 시점 B와 시점 C 사이의 구간 동안 유효한 칩 선택 신호(CS_n)를 제공할 수도 있을 것이다. 또한, 도 7에 예시된 실시예에서, 가속기는 시점 B와 시점 C 사이의 구간 동안 메모리 장치에 대한 억세스를 수행하므로, 호스트와의 얼라인(align)을 위한 노 오퍼레이션 커맨드(NOP)를 생성하지 않을 수 있다.
한편, 상기한 도 5 내지 도 7에 도시된 실시예들에서, 가속기는 시점 C 이후에 메모리 동작을 수행하지 않는 것으로 도시되었으나, 본 개시의 실시예는 이에 국한될 필요가 없다. 예컨대, 전술한 실시예에서 마지막 노 오퍼레이션 커맨드(NOP)가 인가된 이후 실제 유효한 커맨드가 인가되는 최소 시간 구간에 상응하는 tXS 가 충분히 길게 설정됨에 따라, 가속기가 메모리 장치의 점유를 호스트로 변경하기 위한 후속 절차들이 수행되는 시간을 충분히 확보하는 한도에서, tXS 구간이 시작되는 이후에 가속기가 메모리 장치에 대한 억세스를 중단하도록 컴퓨팅 시스템이 구현될 수도 있을 것이다.
도 8은 본 개시의 다른 실시예에 따른 가속기의 동작방법을 나타내는 플로우차트이다. 도 8에서는 가속기가 수행하는 메모리 동작 및 리프레쉬 동작의 제어 예가 도시된다.
도 8을 참조하면, 가속기는 전술한 실시예들에 따라 호스트로부터의 각종 커맨드/어드레스 신호 및 하나 이상의 신호들을 모니터링할 수 있고, 일 예로서 모니터링 결과에 따라 호스트로부터 제공되는 셀프 리프레쉬 커맨드(SRE)를 검출할 수 있다(S31). 또한, DDR5 스펙에 따라 실제 셀프 리프레쉬 모드로의 진입을 위해 셀프 리프레쉬 커맨드(SRE) 인가 이후 칩 선택 신호(CS_n)가 특정 상태(예컨대, 로직 로우)로 변동될 수 있으며, 가속기는 칩 선택 신호(CS_n)의 레벨이 로직 로우로 변동되었는지를 검출할 수 있다(S32). 검출 결과, 칩 선택 신호(CS_n)의 레벨이 로직 로우로 변동되지 않은 경우에는, 가속기가 메모리 장치를 점유하기 위한 일련의 동작들을 수행하지 않을 수 있다. 반면에, 칩 선택 신호(CS_n)의 레벨이 로직 로우로 변동되는 경우에는, 가속기는 메모리 장치를 점유하기 위한 일련의 동작들을 수행할 수 있다.
상기 일련의 동작들의 일 예로서, 가속기는 클록 신호를 활성화함과 함께 선택기(MUX)를 제어할 수 있으며(S33), 또한, 가속기는 메모리 장치로 유효한 커맨드/어드레스 신호 및 클록 신호를 제공함으로써 데이터 기록/독출 동작을 포함하는 가속(Accelerating) 처리를 수행할 수 있다(S34). 도 8에는 도시되지 않았으나, 호스트에 의해 지시되는 셀프 리프레쉬 모드에서, 가속기는 메모리 장치로 리프레쉬 커맨드(예컨대, 노멀 리프레쉬 커맨드) 및 클록 신호를 제공함으로써 메모리 장치의 워드라인들에 대한 리프레쉬 동작을 제어할 수 있으며, 이에 따라 메모리 장치는 셀프 리프레쉬 모드 구간에서 실질적으로 가속기의 제어에 기반하여 노멀 리프레쉬 방식에 따라 리프레쉬 동작을 수행할 수 있다.
셀프 리프레쉬 모드의 탈출이 칩 선택 신호(CS_n)의 레벨 변동에 의해 정의되는 경우, 가속기는 호스트로부터 제공되는 칩 선택 신호(CS_n)의 레벨을 주기적 또는 지속적으로 모니터링함으로써 칩 선택 신호(CS_n)의 레벨이 로직 하이로 변동되었는지를 검출할 수 있다(S35). 검출 결과, 칩 선택 신호(CS_n)의 레벨이 로직 하이로 변동되지 않은 경우에는 가속 처리 및 리프레쉬 동작을 계속 수행할 수 있다. 반면에, 칩 선택 신호(CS_n)의 레벨이 로직 하이로 변동된 경우에는 셀프 리프레쉬 모드의 구간이 종료된 것으로 판단될 수 있고, 이에 따라 가속기는 리프레쉬 동작을 수행하기 위한 제어 동작을 중단할 수 있다(S36).
한편, 본 개시의 예시적인 실시예에 따라, 가속 처리의 구간을 증가하기 위해, 칩 선택 신호(CS_n)의 레벨이 로직 하이로 변동된 이후에도 전술한 실시예들에 따라 추가의 시간 동안 가속 처리가 더 수행될 수도 있다. 가속기는 호스트로부터의 다양한 신호들을 기초로 하거나, 또는 가속기 내부의 카운팅 동작에 기반하여 현재 시점이 가속 처리를 수행하는 구간에 해당하는 지를 판단할 수 있고(S37), 상기 판단 결과에 기초하여 메모리 장치의 점유를 변경하기 위한 동작들을 수행할 수 있을 것이다. 일 예로서, 가속 처리를 수행하는 구간에 해당하는 경우에는 메모리 장치에 대한 억세스를 수행할 수 있고, 가속 처리를 수행하는 구간이 경과함에 따라 메모리 장치의 점유를 호스트로 변경하기 위해 가속기는 클록 신호를 비활성화함과 함께 선택기(MUX)를 제어할 수 있다(S38).
도 9는 본 개시의 또 다른 실시예에 따른 가속기의 동작방법을 나타내는 플로우차트이다. 도 9에서는 가속기가 커맨드/어드레스 신호를 모니터링함으로써 셀프 리프레쉬 모드의 탈출을 모니터링하는 일 예가 도시된다.
전술한 실시예들에 따라, 호스트와 가속기는 각각 다양한 종류의 스펙을 통해 메모리 장치와 통신할 수 있고, 일 예로서 DDR4를 포함하는 DDRx 스펙에서 셀프 리프레쉬 진입 커맨드(SR Entry) 및 셀프 리프레쉬 탈출 커맨드(SR Exit)가 정의될 수 있다. 가속기는 전술한 실시예들에 따라 호스트로부터 제공되는 셀프 리프레쉬 진입 커맨드(SR Entry)를 검출할 수 있고(S41), 셀프 리프레쉬 진입 커맨드(SR Entry)에 응답하여 클록 신호의 활성화 및 선택기(MUX)에 대한 제어 동작을 통해 가속기가 메모리 장치를 점유할 수 있다(S42). 또한, 가속기는 메모리 장치를 점유하는 동안 가속 처리 및 리프레쉬 동작을 제어할 수 있으며(S43), 호스트로부터 제공되는 커맨드/어드레스 신호에 대한 모니터링 동작을 지속적으로 수행할 수 있다.
상기 모니터링 결과에 따라 호스트로부터 셀프 리프레쉬 탈출 커맨드(SR Exit)가 제공되었음이 검출될 수 있고(S44), 상기 검출 결과에 기반하여 가속기는 메모리 장치의 점유를 호스트로 변경하기 위한 일련의 동작들로서 클록 신호를 비활성화하는 동작과 선택기(MUX)에 대한 제어 동작을 수행할 수 있다(S45). 상기와 같은 동작에 따라 가속기는 메모리 장치에 대한 점유를 해제하고(S46), 메모리 장치의 점유를 호스트로 변경할 수 있다.
도 10 및 도 11은 본 개시의 예시적인 실시예들에 따라 가속 처리 결과가 호스트에 피드백되는 일 예를 나타내는 플로우차트이다. 도 10 및 도 11에서는, 가속기가 메모리 장치를 점유하여 이용함에 따라 메모리 장치에 저장된 데이터가 변경되고, 변경된 데이터가 호스트로 제공됨에 따라 호스트는 메모리 장치의 데이터 업데이트 상태를 판단할 수 있다.
도 10을 참조하면, 전술한 실시예들에 따라 호스트가 셀프 리프레쉬 커맨드를 가속기로 제공하고(S51), 가속기는 클록 신호의 활성화 및 선택기 제어 등의 동작을 수행하여 메모리 장치를 점유할 수 있다(S52). 또한 가속기는 메모리 장치를 점유하는 동안 메모리 장치에 저장된 데이터를 변경하는 가속 처리를 수행할 수 있고, 일 예로서 메모리 장치에 데이터를 기록하거나, 메모리 장치로부터 독출된 데이터를 이용한 연산 처리를 수행할 수 있고, 연산 처리 결과를 메모리 장치에 저장할 수 있다. 상기와 같은 데이터의 기록, 독출 및 연산 처리 결과의 저장을 위한 요청은 노멀 요청에 해당할 수 있고, 가속기에 의한 노멀 요청의 전송과 이에 응답하는 메모리 장치의 메모리 동작이 다수 회 수행될 수 있다(S53 ~ S56).
전술한 실시예들에 따라 가속기는 호스트로부터 셀프 리프레쉬의 탈출을 나타내는 탈출(Exit) 신호를 수신하고(S57), 클록 신호의 비활성화 및 선택기 제어 등의 동작을 통해 메모리 장치의 점유를 호스트로 변경할 수 있다(S58). 이후, 호스트는 메모리 장치를 점유함에 따라, 변경된 데이터를 획득하기 위해 상기 변경된 데이터의 독출을 요청하는 커맨드/어드레스 신호를 메모리 장치로 제공할 수 있고(S59), 메모리 장치는 이에 응답하여 변경된 데이터를 호스트로 제공할 수 있다(S60).
예시적인 실시예에서, 호스트와 가속기 사이에서 가속기의 가속 처리에 의해 변경된 데이터를 저장할 위치가 협의될 수 있고, 일 예로서 컴퓨팅 시스템의 초기화 과정에서 상기 변경된 데이터의 저장 위치를 나타내는 정보가 송수신될 수 있다. 호스트는 상기 저장 위치를 나타내는 정보를 기초로, 셀프 리프레쉬 모드 이후 메모리 장치의 데이터의 업데이트 상태를 판단할 수 있다.
한편, 도 11을 참조하면, 전술한 실시예에서와 동일하게 호스트는 셀프 리프레쉬 커맨드를 제공할 수 있고(S61), 가속기는 클록 신호의 활성화 및 선택기 제어 등의 동작을 수행할 수 있으며(S62), 가속기는 메모리 장치를 점유함에 따라 노멀 요청을 메모리 장치로 제공함과 함께(S63), 메모리 장치는 이에 응답하여 메모리 동작을 수행할 수 있다(S64). 또한, 가속기는 가속 처리에 의해 변경된 데이터를 내부의 칩(예컨대, 전술한 실시예에서의 연산 칩)에 저장할 수 있고(S65), 일 예로서 메모리 장치로 전송된 데이터를 연산 칩에 함께 저장하거나, 또는 메모리 장치에 저장된 데이터(변경된 데이터)를 독출하여 상기 연산 칩에 저장할 수 있다.
이후, 전술한 실시예들에 따라 가속기는 호스트로부터 탈출(Exit) 신호를 수신하고(S66), 클록 신호의 비활성화 및 선택기 제어 등의 동작을 통해 메모리 장치의 점유를 호스트로 변경할 수 있다(S67). 이후, 호스트는 메모리 장치를 점유한 후 가속기 내의 연산 칩에 저장된 변경된 데이터의 독출을 요청할 수 있고(S68), 가속기는 이에 응답하여 변경된 데이터를 호스트로 제공할 수 있다(S69).
도 12는 본 개시의 예시적인 실시예의 컴퓨팅 시스템의 구조의 일 예를 나타내는 도면이다.
도 12를 참조하면, 본 개시의 실시예에서의 컴퓨팅 시스템(200)에 구비되는 각종 구성 요소들은 인쇄 회로 보드(printed circuit board, PCB(210)) 상에 장착될 수 있고, 일 예로서 컴퓨팅 시스템(200)은 호스트(또는, CPU(220)), 가속기(230) 및 메모리 장치(240)를 포함할 수 있다. 인쇄 회로 보드(PCB, 210)는 상기한 각종 구성 요소들을 장착하기 위한 슬롯들을 포함할 수 있고, 일 예로서 CPU(220)가 장착되는 CPU 슬롯과, 메모리 장치(240)가 장착되는 메모리 슬롯들을 포함할 수 있다. 예컨대, 도 12에서는 두 개의 메모리 슬롯들이 도시되었으나, 전술한 실시예들에 따라 메모리 장치(240)는 다수 개의 메모리 모듈들을 포함할 수 있고, 인쇄 회로 보드(PCB, 210)는 더 많은 수의 메모리 슬롯들을 포함할 수 있다.
메모리 장치(240)는 SIMM(single in memory module) 및 DIMM(dual in memory module) 등의 메모리 모듈을 포함할 수 있고, 도 12에서는 DIMM 슬롯에 DIMM이 메모리 장치(240)로서 장착된 예가 도시된다. 또한, DIMM은 메모리 모듈의 양 면에 장착되는 다수의 DRAM 칩들을 포함할 수 있다.
본 개시의 예시적인 실시예에 따라, 가속기(230)는 하나의 DIMM 슬롯에 장착되어 CPU(220)와 메모리 장치(240) 사이에서 통신을 수행할 수 있다. 일 예로서, 가속기(230)는 모듈 보드 상의 일 면에 장착될 수 있고, CPU(220)로부터 커맨드/어드레스 신호와 데이터를 수신하고, 메모리 장치(240)로 CPU(220)에서 생성된 커맨드/어드레스 신호와 데이터를 제공하거나, 가속기(230) 내에서 생성된 커맨드/어드레스 신호와 데이터를 제공할 수 있다. 또한, 전술한 실시예들에 따라, 가속기(230)는 CPU(220)에 의해 지시되는 셀프 리프레쉬 모드의 구간에서 메모리 장치(240)를 점유하여 이용할 수 있다.
도 13은 본 발명의 다른 예시적인 컴퓨팅 시스템을 나타내는 블록도이다. 도 13에서는 어플리케이션 프로세서(Application Processor, 310)와 메모리 장치(320)를 포함하는 컴퓨팅 시스템(300)이 예시된다. 전술한 실시예들에 따라, 메모리 장치(320)는 하나 이상의 메모리 칩들(예컨대, DRAM 칩들)을 포함할 수 있고, 메모리 장치(320)는 메모리 셀 어레이(321), 리프레쉬 제어기(322) 및 제어 로직(323)을 포함할 수 있다.
어플리케이션 프로세서(310)는 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다. 시스템 온 칩(SoC)은 소정의 표준 버스 규격을 갖는 프로토콜이 적용된 시스템 버스를 포함할 수 있으며, 상기 시스템 버스에 연결되는 각종 IP(Intellectual Property)들을 포함할 수 있다. 시스템 버스의 표준 규격으로서, ARM(Advanced RISC Machine) 사의 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜이 적용될 수 있다. AMBA 프로토콜의 버스 타입에는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), AXI4, ACE(AXI Coherency Extensions) 등이 포함될 수 있다. 이외에도, 소닉사(SONICs Inc.)의 uNetwork 이나 IBM의 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 적용되어도 무방하다. 또한, 상기한 IP의 일 예로서, 어플리케이션 프로세서(310)는 전술한 실시예들에 따른 CPU(311) 및 가속기(312)를 포함할 수 있다. 또한, 어플리케이션 프로세서(310)가 모뎀 회로를 포함하는 경우, 상기 어플리케이션 프로세서(310)는 ModAP 으로 지칭될 수 있다.
한편, 예시적인 실시예에서, 어플리케이션 프로세서(310)는 하나 이상의 클록 생성기들을 더 포함할 수 있고, 예컨대 제1 클록 생성기(313) 및 제2 클록 생성기(314)를 포함할 수 있다. 제1 클록 생성기(313)는 CPU(311)의 제어에 기초하여 활성화되는 클록 신호(CK)를 생성할 수 있고, 제2 클록 생성기(314)는 가속기(312)의 제어에 기초하여 활성화되는 클록 신호(CK)를 생성할 수 있다. CPU(311) 및 가속기(312) 각각은 메모리 장치(320)를 억세스하기 위하여, 커맨드/어드레스 신호(CA) 및 데이터(DQ)를 생성할 수 있다.
전술한 실시예에 따라, CPU(311) 및 가속기(312)는 메모리 장치(320)를 선택적으로 점유할 수 있고, 일 예로서 CPU(311)는 메모리 장치(320)가 셀프 리프레쉬 모드로 진입하도록 셀프 리프레쉬 진입 커맨드를 생성할 수 있다. 또한, CPU(311)는 셀프 리프레쉬 모드 구간 동안 제1 클록 생성기(313)를 제어하여 클록 신호(CK)의 생성을 비활성화할 수 있다.
가속기(312)는 전술한 실시예들에 따른 선택기(MUX, 312_1)를 포함할 수 있고, CPU(311)로부터의 각종 신호들을 모니터링함으로써, 셀프 리프레쉬 모드로의 진입 및 탈출을 검출할 수 있다. 선택기(MUX, 312_1)는 검출 결과를 기초로 CPU(311)로부터의 커맨드/어드레스 신호(CA) 및 데이터(DQ)를 메모리 장치(320)로 출력하거나, 또는 가속기(312)로부터의 커맨드/어드레스 신호(CA) 및 데이터(DQ)를 메모리 장치(320)로 출력할 수 있다. 또한, 가속기(312)가 메모리 장치(320)를 점유하는 동안, 가속기(312)는 제2 클록 생성기(313)를 제어하여 클록 신호(CK)의 생성을 활성화할 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 시스템을 포함하는 데이터 센터(400)를 나타내는 블록도이다. 일부 실시예들에서, 도면들을 참조하여 전술된 컴퓨팅 시스템은, 데이터 센터(400)의 어플리케이션 서버 및/또는 스토리지 서버에 포함될 수 있다.
도 14를 참조하면, 데이터 센터(400)는 다양한 데이터를 수집하고 서비스를 제공할 수 있고, 데이터 스토리지 센터로 지칭될 수도 있다. 예를 들면, 데이터 센터(400)는 검색 엔진 및 데이터 베이스 운용을 위한 시스템일 수 있고, 은행 등의 기업 또는 정부기관에서 사용되는 컴퓨팅 시스템일 수도 있다. 도 14에 도시된 바와 같이, 데이터 센터(400)는 어플리케이션 서버들(50_1 ~ 50_n) 및 스토리지 서버들(60_1 ~ 60_m)을 포함할 수 있다(m 및 n은 1보다 큰 정수). 어플리케이션 서버들(50_1 ~ 50_n)의 개수 n 및 스토리지 서버들(60_1 ~ 60_m)의 개수 m은 실시예에 따라 다양하게 선택될 수 있고, 어플리케이션 서버들(50_1 ~ 50_n)의 개수 n 및 스토리지 서버들(60_1 ~ 60_m)의 개수 m은 상이할 수 있다.
어플리케이션 서버(50_1 ~ 50_n)는 프로세서(51_1 ~ 51_n), 메모리(52_1 ~ 52_n), 스위치(53_1 ~ 53_n), NIC(network interface controller)(54_1 ~ 54_n) 및 스토리지 장치(55_1 ~ 55_n) 중 적어도 하나를 포함할 수 있다. 프로세서(52_1 ~ 51_n)는 어플리케이션 서버(50_1 ~ 50_n)의 전반적인 동작을 제어할 수 있고, 메모리(52_1 ~ 52_n)에 억세스하여 메모리(52_1 ~ 52_n)에 로딩된 명령어들(instructions) 및/또는 데이터를 실행할 수 있다. 메모리(52_1 ~ 52_n)는 비제한적인 예시로서, DDR SDRAM(Double Data Rate Synchronous DRAM), HBM(High Bandwidth Memory), HMC(Hybrid Memory Cube), DIMM(Dual In-line Memory Module), Optane DIMM 또는 NVMDIMM(Non-Volatile DIMM)를 포함할 수 있다.
실시예에 따라, 어플리케이션 서버(50_1 ~ 50_n)에 포함되는 프로세서들의 개수 및 메모리들의 개수는 다양하게 선택될 수 있다. 일부 실시예들에서, 프로세서(51_1 ~ 51_n)와 메모리(52_1 ~ 52_n)는 프로세서-메모리 페어를 제공할 수 있다. 일부 실시예들에서, 프로세서(51_1 ~ 51_n)와 메모리(52_1 ~ 52_n)의 개수는 상이할 수 있다. 프로세서(51_1 ~ 51_n)는 단일 코어 프로세서 또는 다중 코어 프로세서를 포함할 수 있다. 일부 실시예들에서, 도 13에서 점선으로 도시된 바와 같이, 어플리케이션 서버(50_1 ~ 50_n)에서 스토리지 장치(55_1 ~ 55_n)는 생략될 수도 있다. 스토리지 서버(50_1 ~ 50_n)에 포함되는 스토리지 장치(55_1 ~ 55_n)의 개수는 실시예에 따라 다양하게 선택될 수 있다. 프로세서(51_1 ~ 51_n), 메모리(52_1 ~ 52_n), 스위치(53_1 ~ 53_n), NIC(54_1 ~ 54_n) 및/또는 스토리지 장치(55_1 ~ 55_n)는, 도면들을 참조하여 전술된 링크를 통해서 상호 통신할 수 있다.
스토리지 서버(60_1 ~ 60_m)는 프로세서(61_1 ~ 61_m), 메모리(62_1 ~ 62_m), 스위치(63_1 ~ 63_m), NIC(64_1 ~ 64_n) 및 스토리지 장치(65_1 ~ 65_m) 중 적어도 하나를 포함할 수 있다. 프로세서(61_1 ~ 61_m) 및 메모리(62_1 ~ 62_m)는, 전술된 어플리케이션 서버(50_1 ~ 50_n)의 프로세서(51_1 ~ 51_n) 및 메모리(52_1 ~ 52_n)와 유사하게 동작할 수 있다.
도 14에는 각각의 어플리케이션 서버 및 각각의 스토리지 서버에 하나의 프로세서만이 도시되었으나, 전술한 실시예들에 따라 메모리는 적어도 두 개의 프로세서들에 의해 공유될 수 있다. 일 예로, 어플리케이션 서버(50_1)에서 프로세서(51_1)는 CPU와 가속기를 포함하는 다수의 프로세서들을 포함하는 개념일 수 있고, 메모리(52_1)는 CPU와 가속기에 의해 공유될 수 있다. 즉, 전술한 실시예들에서의 컴퓨팅 시스템이 도 14에 도시된 어플리케이션 서버 및 스토리지 서버에 각각 적용될 수 있으며, 메모리의 동작 모드(예컨대, 셀프 리프레쉬 모드)에 따라 CPU 또는 가속기가 선택적으로 메모리를 점유할 수 있다.
어플리케이션 서버들(50_1 ~ 50_n) 및 스토리지 서버들(60_1 ~ 60_m)은 네트워크(70)를 통해 상호 통신할 수 있다. 일부 실시예들에서, 네트워크(70)는 FC(Fibre Channel) 또는 이더넷(Ethernet) 등을 이용하여 구현될 수 있다. FC는 상대적으로 고속의 데이터 전송에 사용되는 매체일 수 있고, 고성능/고가용성을 제공하는 광 스위치가 사용될 수 있다. 네트워크(70)의 액세스 방식에 따라 스토리지 서버들(60_1 ~ 60_m)은 파일 스토리지, 블록 스토리지, 또는 오브젝트 스토리지로서 제공될 수 있다.
일부 실시예들에서, 네트워크(70)는 SAN(Storage Area Network)와 같은 스토리지 전용 네트워크일 수 있다. 예를 들어, SAN은 FC 네트워크를 이용할 수 있고 FCP(FC Protocol)에 따라 구현된 FC-SAN일 수 있다. 다르게는, SAN은 TCP/IP 네트워크를 이용하고 iSCSI(SCSI over TCP/IP 또는 Internet SCSI) 프로토콜에 따라 구현된 IP-SAN일 수 있다. 일부 실시예들에서, 네트워크(70)는 TCP/IP 네트워크와 같은 일반 네트워크일 수 있다. 예를 들면, 네트워크(70)는 FCoE(FC over Ethernet), NAS(Network Attached Storage), NVMe-oF(NVMe over Fabrics) 등의 프로토콜에 따라 구현될 수 있다.
이하에서, 어플리케이션 서버(50_1) 및 스토리지 서버(60_1)가 주로 설명되나, 어플리케이션 서버(50_1)에 대한 설명은 다른 어플리케이션 서버(예컨대, 50_n)에도 적용될 수 있고, 스토리지 서버(60_1)에 대한 설명은 다른 스토리지 서버(예컨대, 60_m)에도 적용될 수 있는 점이 유의된다.
어플리케이션 서버(50_1)는 사용자 또는 클라이언트가 저장을 요청한 데이터를 네트워크(70)를 통해 스토리지 서버들(60_1 ~ 60_m) 중 하나에 저장할 수 있다. 또한, 어플리케이션 서버(50_1)는 사용자 또는 클라이언트가 독출을 요청한 데이터를 스토리지 서버들(60_1 ~ 60_m) 중 하나로부터 네트워크(70)를 통해 획득할 수 있다. 예를 들어, 어플리케이션 서버(50_1)는 웹 서버 또는 DBMS(Database Management System) 등으로 구현될 수 있다.
어플리케이션 서버(50_1)는 네트워크(70)를 통해 다른 어플리케이션 서버(50_n)에 포함된 메모리(52_n) 및/또는 스토리지 장치(55_n)에 액세스할 수 있고, 그리고/또는 네트워크(70)를 통해 스토리지 서버들(60_1 ~ 60_m)에 포함된 메모리들(62_1 ~ 62_m) 및/또는 스토리지 장치들(65_1 ~ 65_m)에 액세스할 수 있다. 이에 따라, 어플리케이션 서버(50_1)는 어플리케이션 서버들(50_1 ~ 50_n) 및/또는 스토리지 서버들(60_1 ~ 60_m)에 저장된 데이터에 대해 다양한 동작들을 수행할 수 있다. 예를 들어, 어플리케이션 서버(50_1)는 어플리케이션 서버들(50_1 ~ 50_n) 및/또는 스토리지 서버들(60_1 ~ 60_m) 사이에서 데이터를 이동시키거나 복사(copy)하기 위한 명령어를 실행할 수 있다. 이 때 데이터는 스토리지 서버들(60_1 ~ 60_m)의 스토리지 장치로(65_1 ~ 65_m)부터 스토리지 서버들(60_1 ~ 60_m)의 메모리들(62_1 ~ 62_m)을 통해서 또는 직접적으로 어플리케이션 서버들(50_1 ~ 50_n)의 메모리(52_1 ~ 52_n)로 이동될 수 있다. 일부 실시예들에서, 네트워크(70)를 통해 이동하는 데이터는 보안 또는 프라이버시를 위해 암호화된 데이터일 수 있다.
스토리지 서버(60_1)에서, 인터페이스(IF)는 프로세서(61_1)와 컨트롤러(CTRL)의 물리적 연결 및 NIC(64_1)와 컨트롤러(CTRL)의 물리적 연결을 제공할 수 있다. 예를 들어, 인터페이스(IF)는 스토리지 장치(65_1)를 전용 케이블로 직접 접속하는 DAS(Direct Attached Storage) 방식으로 구현될 수 있다. 또한, 예를 들어, 인터페이스(IF)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe(NVM express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC(embedded multi-media card), UFS(Universal Flash Storage), eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.
스토리지 서버(60_1)에서, 스위치(63_1)는 프로세서(61_1)의 제어에 따라 프로세서(61_1)와 스토리지 장치(65_1)를 선택적으로 접속시키거나, NIC(64_1)과 스토리지 장치(65_1)를 선택적으로 접속시킬 수 있다.
일부 실시예들에서, NIC(64_1)는 네트워크 인터페이스 카드, 네트워크 어댑터 등을 포함할 수 있다. NIC(54_1)는 유선 인터페이스, 무선 인터페이스, 블루투스 인터페이스, 광학 인터페이스 등에 의해 네트워크(70)에 연결될 수 있다. NIC(54_1)는 내부 메모리, DSP, 호스트 버스 인터페이스 등을 포함할 수 있으며, 호스트 버스 인터페이스를 통해 프로세서(61_1) 및/또는 스위치(63_1) 등과 연결될 수 있다. 일부 실시예들에서, NIC(64_1)는 프로세서(61_1), 스위치(63_1), 스토리지 장치(65_1) 중 적어도 하나와 통합될 수도 있다.
어플리케이션 서버(50_1 ~ 50_n) 또는 스토리지 서버(60_1 ~ 60_m)에서 프로세서(51_1 ~ 51_m, 61_1 ~ 61_n)는 스토리지 장치들(55_1 ~ 55_n, 65_1 ~ 65_m) 또는 메모리(52_1 ~ 52_n, 62_1 ~ 62_m)로 커맨드를 전송하여 데이터를 프로그램하거나 리드할 수 있다. 이 때 데이터는 ECC(Error Correction Code) 엔진을 통해 에러 정정된 데이터일 수 있다. 데이터는 데이터 버스 변환(Data Bus Inversion: DBI) 또는 데이터 마스킹(Data Masking: DM) 처리된 데이터로서, CRC(Cyclic Redundancy Code) 정보를 포함할 수 있다. 데이터는 보안 또는 프라이버시를 위해 암호화된 데이터일 수 있다.
스토리지 장치(55_1 ~ 55_n, 65_1 ~ 65_m)는 프로세서(51_1 ~ 51_m, 61_1 ~ 61_n)로부터 수신된 독출 커맨드에 응답하여, 제어 신호 및 커맨드/어드레스 신호를 비휘발성 메모리 장치(예컨대 NAND 플래시 메모리 장치, NVM)로 전송할 수 있다. 이에 따라 비휘발성 메모리 장치(NVM)로부터 데이터를 독출하는 경우, 독출 인에이블 신호는 데이터 출력 제어 신호로 입력되어, 데이터를 DQ 버스로 출력하는 역할을 할 수 있다. 독출 인에이블 신호를 이용하여 데이터 스트로브 신호를 생성할 수 있다. 커맨드와 어드레스 신호는 기입 인에이블 신호의 상승 엣지 또는 하강 엣지에 따라 래치될 수 있다.
컨트롤러(CTRL)는 스토리지 장치(65_1)의 동작을 전반적으로 제어할 수 있다. 일 실시예에서, 컨트롤러(CTRL)는 SRAM(Static Random Access Memory)을 포함할 수 있다. 컨트롤러(CTRL)는 기입 커맨드에 응답하여 비휘발성 메모리 장치(NVM)에 데이터를 기입할 수 있고, 또는 독출 커맨드에 응답하여 비휘발성 메모리 장치(NVM)로부터 데이터를 독출할 수 있다. 예를 들어, 기입 커맨드 및/또는 독출 커맨드는 호스트, 예컨대 스토리지 서버(60_1) 내의 프로세서(61_1), 다른 스토리지 서버(60_m) 내의 프로세서(61_m) 또는 어플리케이션 서버(50_1 ~ 50_n) 내의 프로세서(51_1 ~ 51_n)로부터 제공된 요청에 기초하여 생성될 수 있다. 버퍼(BUF)는 비휘발성 메모리 장치(NVM)에 기입될 데이터 또는 비휘발성 메모리 장치(NVM)로부터 독출된 데이터를 임시 저장(버퍼링)할 수 있다. 일부 실시예들에서 버퍼(BUF)는 DRAM을 포함할 수 있다. 또한, 버퍼(BUF)는 메타 데이터를 저장할 수 있고, 메타 데이터는 사용자 데이터 또는 비휘발성 메모리 장치(NVM)를 관리하기 위해 컨트롤러(CTRL)에서 생성된 데이터를 지칭할 수 있다. 스토리지 장치(65_1)는 보안 또는 프라이버시를 위해 SE(Secure Element)를 포함할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (18)

  1. 가속기에 있어서,
    호스트로부터 제공되는 신호를 모니터링하여 메모리 장치의 셀프 리프레쉬 모드로의 진입 및 상기 셀프 리프레쉬 모드로부터의 탈출을 검출하는 신호 제어/모니터링 회로;
    제1 커맨드/어드레스 신호 및 제1 데이터를 생성하여 상기 메모리 장치를 억세스하는 가속기 로직; 및
    상기 셀프 리프레쉬 모드로의 진입이 검출됨에 따라 상기 제1 커맨드/어드레스 신호 및 상기 제1 데이터를 상기 메모리 장치로 출력하고, 상기 셀프 리프레쉬 모드로부터의 탈출이 검출됨에 따라 상기 호스트로부터 제공된 제2 커맨드/어드레스 신호 및 제2 데이터를 상기 메모리 장치로 출력하는 선택기를 구비하는 것을 특징으로 하는 가속기.
  2. 제1항에 있어서,
    상기 신호 제어/모니터링 회로는, 상기 셀프 리프레쉬 모드로의 진입 및 상기 셀프 리프레쉬 모드로부터의 탈출을 검출한 결과를 기초로 상기 선택기를 제어하는 모드 선택신호를 출력하는 것을 특징으로 하는 가속기.
  3. 제1항에 있어서,
    상기 신호 제어/모니터링 회로는, 상기 제1 커맨드/어드레스 신호가 셀프 리프레쉬 커맨드를 나타낼 때 상기 셀프 리프레쉬 모드로의 진입을 검출하는 것을 특징으로 하는 가속기.
  4. 제3항에 있어서,
    상기 신호 제어/모니터링 회로는, 상기 호스트로부터 칩 선택 신호를 수신하고, 상기 칩 선택 신호의 로직 상태의 변동을 모니터링함에 의해 상기 셀프 리프레쉬 모드로부터의 탈출을 검출하는 것을 특징으로 하는 가속기.
  5. 제4항에 있어서,
    상기 칩 선택 신호는 DDR(Double Data Rate) 5 스펙에서 정의된 파형을 가지며,
    상기 신호 제어/모니터링 회로는, 상기 칩 선택 신호의 로직 상태가 제1 로직 상태에서 제2 로직 상태로 변동함을 검출함으로써 상기 셀프 리프레쉬 모드로부터의 탈출을 검출하는 것을 특징으로 하는 가속기.
  6. 제5항에 있어서,
    상기 칩 선택 신호의 로직 상태가 상기 제2 로직 상태로 변동되는 시점에 상기 가속기에 의한 상기 메모리 장치의 억세스가 중단되는 것을 특징으로 하는 가속기.
  7. 제5항에 있어서,
    상기 칩 선택 신호의 로직 상태는, 제1 구간 동안 상기 제2 로직 상태를 유지한 후 상기 제1 로직 상태로 변동되며,
    상기 제1 구간 중 적어도 일부의 구간에서 상기 가속기에 의한 상기 메모리 장치의 억세스가 유지되는 것을 특징으로 하는 가속기.
  8. 제1항에 있어서,
    상기 신호 제어/모니터링 회로의 제어에 기초하여 상기 메모리 장치로 제공되는 클록 신호를 생성하는 클록 생성기를 더 구비하고,
    상기 클록 생성기는 상기 가속기가 상기 메모리 장치를 억세스하는 동안 상기 클록 신호를 활성화하여 출력하는 것을 특징으로 하는 가속기.
  9. 제8항에 있어서,
    상기 클록 생성기는, 상기 셀프 리프레쉬 모드로의 진입을 검출함에 응답하여 상기 클록 신호를 활성화하고, 상기 셀프 리프레쉬 모드로부터의 탈출을 검출함에 응답하여 상기 클록 신호를 비활성화하는 것을 특징으로 하는 가속기.
  10. 제1항에 있어서,
    상기 가속기가 상기 메모리 장치를 억세스함에 따라 변경된 데이터가 상기 가속기 로직에 저장되고,
    상기 셀프 리프레쉬 모드로부터의 탈출이 검출된 이후, 상기 변경된 데이터가 상기 호스트로 제공되는 것을 특징으로 하는 가속기.
  11. 하나 이상의 채널들을 포함하는 메모리 장치;
    제1 커맨드/어드레스 신호와 제1 데이터를 생성하여 상기 메모리 장치를 억세스하고, 상기 메모리 장치가 셀프 리프레쉬 모드로 진입하도록 제어하는 셀프 리프레쉬 커맨드를 생성하는 호스트; 및
    제2 커맨드/어드레스 신호와 제2 데이터를 생성하는 가속기 로직을 포함하고, 상기 호스트가 상기 메모리 장치를 점유하는 동안 상기 제1 커맨드/어드레스 신호 및 상기 제1 데이터를 상기 메모리 장치로 전달하며, 상기 호스트로부터의 상기 셀프 리프레쉬 커맨드를 검출함에 따라 상기 제2 커맨드/어드레스 신호 및 상기 제2 데이터를 상기 메모리 장치로 제공하는 가속기를 구비하는 것을 특징으로 하는 컴퓨팅 시스템.
  12. 제11항에 있어서, 상기 가속기는,
    상기 호스트로부터 제공되는 상기 셀프 리프레쉬 커맨드를 검출하여 모드 선택신호를 생성하는 신호 제어/모니터링 회로; 및
    상기 모드 선택신호에 응답하여, 상기 제1 커맨드/어드레스 신호 및 상기 제1 데이터를 상기 메모리 장치로 제공하거나, 상기 제2 커맨드/어드레스 신호 및 상기 제2 데이터를 상기 메모리 장치로 제공하는 선택기를 더 구비하는 것을 특징으로 하는 컴퓨팅 시스템.
  13. 제12항에 있어서,
    상기 호스트는 칩 선택 신호를 더 생성하고,
    상기 신호 제어/모니터링 회로는, 상기 칩 선택 신호의 로직 상태의 변동을 모니터링함으로써 상기 셀프 리프레쉬 모드로부터의 탈출을 검출하며, 상기 셀프 리프레쉬 모드로부터의 탈출에 응답하여 상기 호스트가 상기 메모리 장치를 점유하도록 상기 선택기를 제어하는 것을 특징으로 하는 컴퓨팅 시스템.
  14. 제12항에 있어서,
    상기 메모리 장치는 서로 독립한 경로를 통해 상기 가속기와 각각 통신하는 제1 채널과 제2 채널을 포함하고,
    상기 선택기는, 상기 제1 채널에 대응하여 배치되는 제1 선택기와, 상기 제2 채널에 대응하여 배치되는 제2 선택기를 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  15. 제11항에 있어서,
    상기 가속기는 상기 메모리 장치를 억세스하기 위한 클록 신호를 생성하는 클록 생성기를 더 포함하고,
    상기 셀프 리프레쉬 커맨드가 검출됨에 따라 상기 클록 신호가 활성화되어 상기 메모리 장치로 제공되는 것을 특징으로 하는 컴퓨팅 시스템.
  16. 제11항에 있어서,
    상기 메모리 장치는 DIMM(dual in memory module)을 포함하고,
    상기 컴퓨팅 시스템은 상기 메모리 장치가 장착되는 다수 개의 DIMM 슬롯들이 배치된 인쇄 회로 보드(printed circuit board, PCB)를 더 포함하고,
    상기 가속기는 상기 다수 개의 DIMM 슬롯들 중 어느 하나에 장착되는 것을 특징으로 하는 컴퓨팅 시스템.
  17. 제11항에 있어서,
    상기 호스트는 상기 메모리 장치가 상기 셀프 리프레쉬 모드로부터 탈출하도록 제어하는 셀프 리프레쉬 탈출 커맨드를 더 생성하고,
    상기 가속기는, 상기 호스트로부터의 상기 셀프 리프레쉬 탈출 커맨드를 검출함에 따라 상기 제1 커맨드/어드레스 신호 및 상기 제1 데이터를 상기 메모리 장치로 제공하는 것을 특징으로 하는 컴퓨팅 시스템.
  18. 제11항에 있어서,
    상기 메모리 장치는 DDR(Double Data Rate) 5 스펙에 기초하여 상기 호스트 및 상기 가속기와 각각 통신하는 것을 특징으로 하는 컴퓨팅 시스템.
KR1020210001476A 2021-01-06 2021-01-06 메모리 장치를 제어하는 가속기, 이를 포함하는 컴퓨팅 시스템 및 가속기의 동작방법 KR20220099347A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020210001476A KR20220099347A (ko) 2021-01-06 2021-01-06 메모리 장치를 제어하는 가속기, 이를 포함하는 컴퓨팅 시스템 및 가속기의 동작방법
US17/406,511 US11670355B2 (en) 2021-01-06 2021-08-19 Accelerator controlling memory device, computing system including accelerator, and operating method of accelerator
EP21196582.7A EP4027248B1 (en) 2021-01-06 2021-09-14 Accelerator controlling memory device, computing system including accelerator, and operating method of accelerator
CN202111079951.9A CN114721980A (zh) 2021-01-06 2021-09-15 加速器、包括加速器的计算系统以及加速器的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210001476A KR20220099347A (ko) 2021-01-06 2021-01-06 메모리 장치를 제어하는 가속기, 이를 포함하는 컴퓨팅 시스템 및 가속기의 동작방법

Publications (1)

Publication Number Publication Date
KR20220099347A true KR20220099347A (ko) 2022-07-13

Family

ID=78032347

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210001476A KR20220099347A (ko) 2021-01-06 2021-01-06 메모리 장치를 제어하는 가속기, 이를 포함하는 컴퓨팅 시스템 및 가속기의 동작방법

Country Status (4)

Country Link
US (1) US11670355B2 (ko)
EP (1) EP4027248B1 (ko)
KR (1) KR20220099347A (ko)
CN (1) CN114721980A (ko)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763416B1 (en) 1999-07-29 2004-07-13 Micron Technology, Inc. Capturing read data
US8854908B1 (en) 2012-06-25 2014-10-07 Inphi Corporation System and method for memory access in server communications
US8842480B2 (en) 2012-08-08 2014-09-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Automated control of opening and closing of synchronous dynamic random access memory rows
KR20140113069A (ko) 2013-03-15 2014-09-24 삼성전자주식회사 휘발성 메모리 장치의 자가 진단 수행 방법 및 전자 장치
US9870333B1 (en) 2014-09-12 2018-01-16 Keysight Technologies, Inc. Instrumentation chassis including integrated accelerator module
KR102326018B1 (ko) * 2015-08-24 2021-11-12 삼성전자주식회사 메모리 시스템
EP3533058B1 (en) * 2016-10-31 2021-09-22 Intel Corporation Applying chip select for memory device identification and power management control
US10628343B2 (en) 2017-02-03 2020-04-21 Futurewei Technologies, Inc. Systems and methods for utilizing DDR4-DRAM chips in hybrid DDR5-DIMMs and for cascading DDR5-DIMMs
CN110770710B (zh) 2017-05-03 2023-09-05 艾德蒂克通信公司 用于控制数据加速的装置和方法
US10303545B1 (en) 2017-11-30 2019-05-28 International Business Machines Corporation High efficiency redundant array of independent memory
US10607681B2 (en) * 2018-06-28 2020-03-31 Micron Technology, Inc. Apparatuses and methods for switching refresh state in a memory circuit
KR20200016116A (ko) 2018-08-06 2020-02-14 삼성전자주식회사 메모리 장치 및 메모리 시스템
US10649927B2 (en) 2018-08-20 2020-05-12 Intel Corporation Dual in-line memory module (DIMM) programmable accelerator card
US11195568B1 (en) * 2020-08-12 2021-12-07 Samsung Electronics Co., Ltd. Methods and systems for controlling refresh operations of a memory device

Also Published As

Publication number Publication date
CN114721980A (zh) 2022-07-08
EP4027248A1 (en) 2022-07-13
US11670355B2 (en) 2023-06-06
US20220215871A1 (en) 2022-07-07
EP4027248B1 (en) 2023-10-18

Similar Documents

Publication Publication Date Title
US11568916B2 (en) Multi-phase clock generator, memory device including multi-phase clock generator, and method of generating multi-phase clock of memory device
US11462255B2 (en) Memory device, a controller for controlling the same, a memory system including the same, and a method of operating the same
BR112015019459B1 (pt) Dispositivo para uso em um módulo de memória e método realizado em um módulo de memória
US11741034B2 (en) Memory device including direct memory access engine, system including the memory device, and method of operating the memory device
US20180088843A1 (en) Persistent memory descriptor
JP2022113100A (ja) メタデータにエラー検出訂正(ecc)ビットを割り当てるためのeccビットの分散
NL2031713B1 (en) Double fetch for long burst length memory data transfer
KR20230016110A (ko) 메모리 모듈, 이를 포함하는 시스템, 및 메모리 모듈의 동작 방법
US11610624B2 (en) Memory device skipping refresh operation and operation method thereof
EP4071583A1 (en) Avoiding processor stall when accessing coherent memory device in low power
US9176906B2 (en) Memory controller and memory system including the same
EP4027248B1 (en) Accelerator controlling memory device, computing system including accelerator, and operating method of accelerator
KR20220067992A (ko) 선택적 및 병렬적 에러 정정을 수행하는 메모리 컨트롤러, 이를 포함하는 시스템 및 메모리 장치의 동작 방법
KR20220060326A (ko) 확장 패킷을 제공하는 인터페이스 회로 및 이를 포함하는 프로세서
KR20220064230A (ko) 다중 프로토콜에 기초하여 메모리에 액세스하기 위한 시스템, 장치 및 방법
KR20220049978A (ko) 장치-부착 메모리에 대한 액세스를 위한 시스템, 장치 및 방법
US20230168818A1 (en) Memory device having reduced power noise in refresh operation and operating method thereof
US20230376427A1 (en) Memory system and computing system including the same
KR20230082529A (ko) 리프레쉬 동작에서 파워 노이즈를 감소시킨 메모리 장치 및 그 동작방법
KR20230043692A (ko) 메모리 모듈 데이터 폭의 유연한 구성을 위한 인에이블링 로직
KR20230160673A (ko) 메모리 시스템 및 이를 포함하는 컴퓨팅 시스템
CN117075795A (zh) 存储器系统以及包括其的计算系统
KR20230046362A (ko) 메모리 모듈의 동작 방법, 메모리 컨트롤러의 동작 방법, 및 메모리 시스템의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination