Search

KR-20260061914-A - DATA ACCESS APPARATUS AND OPERATING METHOD THEREOF

KR20260061914AKR 20260061914 AKR20260061914 AKR 20260061914AKR-20260061914-A

Abstract

상기 기술적 과제를 달성하기 위한 본 개시의 기술적 사상에 따른 데이터 액세스 장치는, 복수의 데이터-셋 각각에 대한 연산을 수행하는 처리 유닛 어레이; 상기 복수의 데이터-셋에 대한 복수의 데이터-셋 어드레스 정보 및 롱 레이턴시 분석 정보를 기반으로 데이터-셋 액세스 순서 정보를 생성하는 데이터-셋 액세스 스케줄러; 상기 복수의 데이터-셋 어드레스 정보 및 스토리지 장치 현재 상태 정보를 기반으로 상기 롱 레이턴시 분석 정보를 생성하는 데이터-셋 상태 분석기; 및 상기 데이터-셋 액세스 순서 정보를 기반으로 이종의 제1 메모리 및 제2 메모리에 대한 데이터-셋 액세스를 수행하는 데이터-셋 매니저;를 포함한다.

Inventors

  • 정원섭
  • 박상수
  • 숭현섭
  • 원치훈
  • 유영건
  • 이동훈

Assignees

  • 삼성전자주식회사

Dates

Publication Date
20260506
Application Date
20241028

Claims (10)

  1. 복수의 데이터-셋 각각에 대한 연산을 수행하는 처리 유닛 어레이; 상기 복수의 데이터-셋에 대한 복수의 데이터-셋 어드레스 정보 및 롱 레이턴시 분석 정보를 기반으로 데이터-셋 액세스 순서 정보를 생성하는 데이터-셋 액세스 스케줄러; 상기 복수의 데이터-셋 어드레스 정보 및 스토리지 장치 현재 상태 정보를 기반으로 상기 롱 레이턴시 분석 정보를 생성하는 데이터-셋 상태 분석기; 및 상기 데이터-셋 액세스 순서 정보를 기반으로 이종의 제1 메모리 및 제2 메모리에 대한 데이터-셋 액세스를 수행하는 데이터-셋 매니저;를 포함하는 데이터 액세스 장치.
  2. 청구항 1에 있어서, 상기 복수의 데이터-셋 어드레스 정보는 상기 복수의 데이터-셋 각각을 구성하는 복수의 데이터-서브셋이 스토리지 장치에 저장된 위치를 가리키는 정보인, 데이터 액세스 장치.
  3. 청구항 1에 있어서, 상기 롱 레이턴시 분석 정보는 소정 개수 이상의 액세스 요청이 대기 중인 상태, 가비지 컬렉션 활성화, 및 방어 코드 활성화 중 적어도 하나로 인해 상기 하나 이상의 데이터-셋 액세스에 롱 레이턴시가 발생하는지 여부를 나타내는 정보인, 데이터 액세스 장치.
  4. 청구항 1에 있어서, 상기 데이터-셋 액세스 스케줄러는 상기 롱 레이턴시 분석 정보를 기반으로 롱 레이턴시 발생 타입을 결정하고, 제1 롱 레이턴시 발생 타입에 대응하여 제1 스케줄링 정책을 선택하고, 제2 롱 레이턴시 발생 타입에 대응하여 제2 스케줄링 정책을 선택하고, 상기 제1 스케줄링 정책 또는 상기 제2 스케줄링 정책에 따른 상기 데이터-셋 액세스 순서 정보를 생성하고, 상기 제1 롱 레이턴시 발생 타입은 타겟 데이터-셋 액세스로 인하여 상기 타겟 데이터-셋 액세스에 롱 레이턴시가 발생하는 타입이고, 상기 제2 롱 레이턴시 발생 타입은 상기 타겟 데이터-셋 액세스로 인하여 다른 데이터-셋 액세스에 롱 레이턴시가 발생하는 타입인, 데이터 액세스 장치.
  5. 청구항 4에 있어서, 상기 제1 스케줄링 정책은 상기 타겟 데이터-셋 액세스 순서를 최우선으로 변경하는 정책, 가비지 컬렉션 활성화가 조기에 이루어지도록 유도하는 정책, 및 방어 코드 활성화가 조기에 이루어지도록 유도하는 정책 중 적어도 하나인, 데이터 액세스 장치.
  6. 청구항 4에 있어서, 상기 제2 스케줄링 정책은 상기 다른 데이터-셋 액세스 순서를 상기 타겟 데이터-셋 액세스 순서보다 우선하도록 액세스 순서를 변경하는 정책, 상기 타겟 데이터-셋 액세스 순서를 상기 다른 데이터-셋 액세스 순서보다 우선하도록 액세스 순서를 변경하는 정책, 가비지 컬렉션 활성화가 조기에 이루어지도록 유도하는 정책, 및 방어 코드 활성화가 조기에 이루어지도록 유도하는 정책 중 적어도 하나인, 데이터 액세스 장치.
  7. 청구항 4에 있어서, 상기 제1 스케줄링 정책 및 상기 제2 스케줄링 정책은 각각 롱 레이턴시가 발생하지 않는 새로운 데이터-셋 액세스 순서를 상기 타겟 데이터-셋 액세스 순서로 변경하는 정책인, 데이터 액세스 장치.
  8. 청구항 1에 있어서, 상기 제1 메모리는 휘발성 메모리 장치이고, 상기 제2 메모리는 비휘발성 메모리 장치인, 데이터 액세스 장치.
  9. 이종의 제1 메모리 및 제2 메모리를 포함하고, 복수의 데이터-셋 각각에 대한 연산 동작을 수행하는 데이터 액세스 장치의 동작 방법에 있어서, 상기 복수의 데이터-셋에 대한 복수의 데이터-셋 어드레스 정보, 롱 레이턴시 분석 요청, 및 제2 메모리에 대한 현재 상태 정보를 기반으로 상기 복수의 데이터-셋 액세스에 대한 롱 레이턴시 발생 여부를 분석하고, 롱 레이턴시 분석 정보를 생성하는 단계; 상기 롱 레이턴시 분석 정보를 기반으로 상기 복수의 데이터-셋에 대한 데이터-셋 액세스 순서 정보를 생성하는 단계; 및 상기 데이터-셋 액세스 순서 정보를 기반으로 상기 제2 메모리에 대한 액세스를 수행하는 단계를 포함하고, 상기 제1 메모리는 휘발성 메모리 장치이고, 상기 제2 메모리는 비휘발성 메모리 장치인, 데이터 액세스 장치의 동작 방법.
  10. 청구항 9에 있어서, 상기 롱 레이턴시 분석 정보는 소정 개수 이상의 액세스 요청이 대기 중인 상태, 가비지 컬렉션 활성화, 및 방어 코드 활성화 중 적어도 하나로 인해 상기 하나 이상의 데이터-셋 액세스에 롱 레이턴시가 발생하는지 여부를 나타내는 정보인, 데이터 액세스 장치의 동작 방법.

Description

데이터 액세스 장치 및 이의 동작 방법{DATA ACCESS APPARATUS AND OPERATING METHOD THEREOF} 본 개시의 기술적 사상은 데이터 액세스 장치 및 이의 동작 방법에 관한 것으로서, 더욱 상세하게는 데이터 액세스의 롱 레이턴시를 최소화하는 데이터 액세스 장치 및 이의 동작 방법에 관한 것이다. LLM(Large Language Model)과 같은 AI(artificial intelligence) 애플리케이션의 데이터 연산에는 고속 데이터 연산이 가능한 가속기(accelerator)가 사용된다. 일반적으로 DRAM(Dynamic Random Access Memory)이 가속기용 메모리로 이용되는데, DRAM의 용량은 LLM을 저장하기에 부족하고, LLM 연산 시 필요한 전력 공급에도 문제가 존재한다. 이에 따라, 가속기에 의한 연산에 있어서, 대용량의 AI 모델 및 연산 과정에서 발생하는 중간 데이터를 모두 저장할 수 있는 대용량 메모리와, 롱 레이턴시에 따른 가속기의 성능 하락을 개선할 수 있는 고속 메모리를 동시에 구현하는 방안이 요구된다. 도 1은 본 개시의 예시적인 실시 예에 따른 데이터 액세스 장치를 나타내는 블록도이다. 도 2는 본 개시의 예시적인 실시 예에 따른 제2 메모리 및 스토리지 컨트롤러를 나타내는 블록도이다. 도 3은 본 개시의 예시적인 실시 예에 따른 데이터 액세스 장치의 동작 방법을 나타내는 흐름도이다. 도 4는 본 개시의 예시적인 실시 예에 따른 제2 메모리의 롱 레이턴시를 감소시킨 데이터-셋 액세스 순서 정보 생성 방법을 나타내는 흐름도이다. 도 5는 본 개시의 예시적인 실시 예에 따른 데이터-셋 액세스에 롱 레이턴시가 발생하는 경우를 설명하기 위한 도면이다. 도 6 내지 9는 본 개시의 예시적인 실시 예에 따른 롱 레이턴시 분석 정보를 기반으로 롱 레이턴시를 감소시킨 데이터-셋 액세스 순서 정보를 생성하는 동작을 설명하기 위한 도면들이다. 도 10은 본 개시의 예시적인 실시 예에 따른 데이터-셋 액세스에 롱 레이턴시가 발생하는 경우를 설명하기 위한 도면이다. 도 11은 본 개시의 예시적인 실시 예에 따른 롱 레이턴시 분석 정보를 기반으로 롱 레이턴시를 감소시킨 데이터-셋 액세스 순서 정보를 생성하는 동작을 설명하기 위한 도면이다. 도 12는 본 발명의 예시적인 실시 예에 따른 데이터 액세스 장치가 적용된 시스템을 도시한 도면이다. 이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 도 1은 본 개시의 예시적인 실시 예에 따른 데이터 액세스 장치(10)를 나타내는 블록도이다. 도 1을 참조하면, 데이터 액세스 장치(10)는 워크로드 스케줄러(111), 처리 유닛 어레이(112), 버퍼 컨트롤러(113), 데이터-셋 액세스 스케줄러(114), 데이터-셋 상태 분석기(115), 및 데이터-셋 매니저(116), 제1 메모리(120), 스토리지 컨트롤러(210), 및 제2 메모리(220)를 포함할 수 있다. 워크로드 스케줄러(111), 데이터-셋 액세스 스케줄러(114), 데이터-셋 상태 분석기(115) 및 데이터-셋 매니저(116) 각각은 하드웨어 방식, 소프트웨어 방식, 또는 이들의 조합을 이용하여 구현될 수 있다. 예시적인 실시 예에서, 데이터 액세스 장치(10)는 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator)일 수 있다. 예를 들어, 데이터 액세스 장치(10)는 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 및/또는 DPU(Data Processing Unit) 등을 포함할 수 있다. 제1 메모리(120)는 처리 유닛 어레이(112)에서 연산을 수행한 결과에 따른 데이터가 저장될 수 있고, 연산에 이용될 데이터가 저장될 수 있다. 또한, 제1 메모리(120)는 스토리지 장치(200)로 전송될 데이터, 혹은 스토리지 장치(200)로부터 전송된 데이터를 임시로 저장하기 위한 버퍼 메모리로서 기능할 수 있다. 스토리지 장치(200)의 제2 메모리(220)가 플래시 메모리를 포함할 때, 상기 플래시 메모리는 2D NAND 메모리 어레이나 3D(또는 수직형, Vertical) NAND(VNAND) 메모리 어레이를 포함할 수 있다. 다른 예로서, 스토리지 장치(200)는 다른 다양한 종류의 비휘발성 메모리들을 포함할 수도 있다. 예를 들어, 스토리지 장치(200)는 MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), Phase change RAM, 저항 메모리(Resistive RAM) 및 다른 다양한 종류의 메모리가 적용될 수 있다. 워크로드 스케줄러(111)는 데이터-셋 액세스 스케줄러(114)로부터 수신한 데이터-셋 액세스 순서 정보를 기반으로 복수의 데이터-셋에 대한 데이터-셋 연산 순서 정보를 생성할 수 있다. 데이터-셋은 처리 유닛 어레이(112)의 처리 유닛(processing unit)에 의해 연산 처리되는 워크로드의 대상일 수 있고, 특정 연산의 대상이 되는 데이터의 단위일 수 있다. 처리 유닛 어레이(112)는 복수의 처리 유닛을 포함할 수 있고, 워크로드 스케줄러(111)로부터 수신된 데이터-셋 연산 순서 정보를 기반으로 복수의 데이터-셋에 대한 연산을 수행할 수 있다. 처리 유닛 어레이(112)는 데이터-셋을 구성하는 복수의 데이터-서브셋 각각에 대한 액세스가 전부 완료된 경우에 한하여 상기 데이터-셋에 대한 연산을 수행할 수 있다. 버퍼 컨트롤러(113)는 처리 유닛 어레이(112)의 연산 중 생성된 중간 데이터-셋을 제1 메모리(120)에 저장하거나, 제1 메모리(120)에 저장된 중간 데이터-셋을 제2 메모리(220)에 저장하거나, 제2 메모리(220)의 연산에 필요한 데이터-셋을 제1 메모리(120)에 저장하는 동작을 관리할 수 있다. 데이터-셋 액세스 스케줄러(114)는 복수의 데이터-셋 어드레스 정보를 수신하면, 복수의 데이터-셋 어드레스 정보에 대응하는 복수의 데이터-셋에 대한 액세스 순서를 스케줄링 할 수 있다. 본 개시의 예시적인 실시 예에 따른 데이터-셋 액세스 스케줄러(114)는 복수의 데이터-셋 중 하나 이상의 데이터-셋에 대한 액세스에 롱 레이턴시가 발생하는지 여부에 대한 분석을 데이터-셋 상태 분석기(115)에 요청할 수 있다. 이 때, 롱 레이턴시가 발생하는지 여부는 복수의 데이터-셋 중 하나 이상의 데이터-셋에 대한 액세스 완료 시간이 복수의 데이터-셋 중 대부분의 데이터-셋에 대한 액세스 완료 시간보다 기준 시간 이상 늦어지는지 여부로 결정될 수 있다. 데이터-셋 액세스 스케줄러(114)는 데이터-셋 상태 분석기(115)로부터 하나 이상의 데이터-셋에 대한 액세스에 롱 레이턴시가 발생한다는 분석 결과를 수신하면 롱 레이턴시가 감소되도록 복수의 데이터-셋에 대한 액세스 순서를 스케줄링 할 수 있다. 데이터-셋 상태 분석기(115)는 데이터-셋 액세스 스케줄러(114)가 수신한 복수의 데이터-셋 어드레스 정보와 동일한 정보를 수신할 수 있다. 또한, 데이터-셋 상태 분석기(115)는 데이터-셋 액세스 스케줄러(114)로부터 하나 이상의 데이터-셋 액세스에 대한 롱 레이턴시 분석 요청을 수신할 수 있다. 또한, 데이터-셋 상태 분석기(115)는 스토리지 장치(200)로부터 NVM 현재 상태 정보를 수신할 수 있다. 데이터-셋 상태 분석기(115)는 복수의 데이터-셋 어드레스 정보, 롱 레이턴시 분석 요청, 및 NVM 현재 상태 정보를 기반으로 하나 이상의 데이터-셋에 대한 액세스에 롱 레이턴시가 발생하는지 여부를 분석할 수 있다. 데이터-셋 상태 분석기(115)는 예를 들어, 데이터-셋이 저장된 위치에 많은 액세스 요청이 대기 중이거나, 가비지 컬렉션이 활성화 또는 활성화 예정이거나, 방어 코드가 활성화 또는 활성화 예정인 경우, 해당 위치에 대한 액세스에 롱 레이턴시가 발생한다는 분석 결과를 생성할 수 있다. 액세스 요청은 라이트 요청(write request), 리드 요청(read request) 등일 수 있다. 데이터-셋 매니저(116)는 데이터-셋 액세스 스케줄러(114)로부터 데이터-셋 액세스 순서 정보를 수신하고, 데이터-셋 액세스 순서 정보를 기반으로 제1 메모리(120) 및 제2 메모리(220)에 대한 데이터-셋 액세스를 수행할 수 있다. 스토리지 컨트롤러(210)는 제1 인터페이스(211), 제2 인터페이스(212) 및 CPU(central processing unit)(213)를 포함할 수 있다. 또한, 스토리지 컨트롤러(210)는 플래시 변환 계층(Flash Translation Layer; FTL)(214), NVM 상태 매니저(215), 및 NVM 액세스 컨트롤러(216)을 더 포함할 수 있다. 스토리지 컨트롤러(210)는 플래시 변환 계층(FTL)(214)이 로딩되는 워킹 메모리를 더 포함할 수 있으며, CPU(213)가 플래시 변환 레이어를 실행하는 것에 의해 제2 메모리(220)에 대한 데이터 기록 및 독출 동작이 제어될 수 있다. 제1 인터페이스(211)는 데이터-셋 상태 분석기(115) 및 데이터-셋 매니저(116) 와 패킷(packet)을 송수신할 수 있다. 제1 인터페이스(211)로 전송되는 패킷은 커맨드(command) 혹은 제2 메모리(220)에 기록될 데이터 등을 포함할 수 있으며, 제1 인터페이스(211)로부터 전송되는 패킷은 커맨드에 대한 응답(response) 혹은 제2 메모리(220)로부터 독출된 데이터 등을 포함할 수 있다. 제2 인터페이스(212)는 제2 메모리(220)에 기록될 데이터를 제2 메모리(220)로 송신하거나, 제2 메모리(220)로부터 독출된 데이터를 수신할 수 있다. 이러한 제2 인터페이스(212)는 토글(Toggle) 혹은 온파이(Open NAND Flash Interface; ONFI)와 같은 표준 규약을 준수하도록 구현될 수 있다. 플래시 변환 계층(214)은 어드레스 매핑(address mapping), 웨어-레벨링(wear-leve