KR20230071015A - 시스템 온 칩 및 이의 동작 방법 - Google Patents

시스템 온 칩 및 이의 동작 방법 Download PDF

Info

Publication number
KR20230071015A
KR20230071015A KR1020220026911A KR20220026911A KR20230071015A KR 20230071015 A KR20230071015 A KR 20230071015A KR 1020220026911 A KR1020220026911 A KR 1020220026911A KR 20220026911 A KR20220026911 A KR 20220026911A KR 20230071015 A KR20230071015 A KR 20230071015A
Authority
KR
South Korea
Prior art keywords
addresses
memory
chip
ips
hash function
Prior art date
Application number
KR1020220026911A
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 US17/987,551 priority Critical patent/US20230152990A1/en
Priority to CN202211425816.XA priority patent/CN116955230A/zh
Publication of KR20230071015A publication Critical patent/KR20230071015A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • 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/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • 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/1684Details of memory controller using multiple buses
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)

Abstract

본 개시의 기술적 사상의 일측면에 따른 복수의 메모리 장치들과 연결된 시스템 온 칩은, 상기 복수의 메모리 장치들에 각각 연결된 복수의 메모리 컨트롤러들, 상기 복수의 메모리 컨트롤러들 중 적어도 하나를 이용하여 데이터 프로세싱 동작을 수행하도록 구성된 복수의 IP(Intellectual Property)들 및 상기 복수의 IP들 중 제1 IP로부터 수신된 제1 어드레스들이 속한 제1 어드레스 영역을 기반으로 복수의 해쉬 함수(hash function)들 중 제1 해쉬 함수를 선택하여 상기 제1 어드레스들에 적용하고, 해쉬된 제1 어드레스들에 따른 제1 액세스 방식으로 상기 복수의 메모리 컨트롤러들 중 적어도 하나와 상기 제1 IP를 연결하도록 구성된 버스 연결부를 포함한다.

Description

시스템 온 칩 및 이의 동작 방법{A SYSTEM ON CHIP AND METHOD OF OPERATION THEREOF}
본 개시의 기술적 사상은 시스템 온 칩에 관한 것으로, 더욱 상세하게는, 복수의 IP들을 포함하고, 복수의 IP들의 복수의 메모리 장치들로의 액세스를 지원하는 시스템 온 칩 및 이의 동작 방법에 관한 것이다.
컴퓨터, 통신, 방송 등이 점차 통합되는 추세에 따라 ASIC(Application Specific Integrated Circuit)과 ASSP(Application Specific Standard Product)의 수요는 시스템 온 칩(System on Chip; SoC)의 수요로 변환되고 있다. 또한, IT(Information Technology) 기기의 경박 단소화 및 고기능화 추세도 시스템 온 칩의 수요가 증가하는 요인에 해당한다.
시스템 온 칩은 반도체 공정 기술의 발전에 따라 기존의 여러 가지 기능을 가진 기능 블록들, 예컨대, IP(Intellectural Property)들이 하나의 칩 상에 집약적으로 구현된 형태이다. IP들은 데이터 프로세싱 동작을 수행하기 위하여 시스템 온 칩과 연결된 복수의 메모리 장치들에 대한 액세스가 필요하다.
종래의 시스템 온 칩에서는 단일 해쉬 함수를 이용하여 IP들의 복수의 메모리 장치들로의 액세스를 지원하였으나, 이는 IP들 각각의 데이터 액세스 특성을 반영하지 못하여 불필요한 전력 소모 및 비효율적인 메모리 액세스를 야기하였다.
본 개시의 기술적 사상이 해결하려는 과제는 복수의 해쉬 함수들을 이용하여 복수의 IP들의 복수의 메모리 장치들로의 액세스를 지원함으로써 불필요한 전력 소모를 최소화하고, 효율적인 메모리 액세스가 가능하도록 구성된 시스템 온 칩 및 이의 동작 방법을 제공하는 데에 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 복수의 메모리 장치들과 연결된 시스템 온 칩은, 상기 복수의 메모리 장치들에 각각 연결된 복수의 메모리 컨트롤러들, 상기 복수의 메모리 컨트롤러들 중 적어도 하나를 이용하여 데이터 프로세싱 동작을 수행하도록 구성된 복수의 IP(Intellectual Property)들 및 상기 복수의 IP들 중 제1 IP로부터 수신된 제1 어드레스들이 속한 제1 어드레스 영역을 기반으로 복수의 해쉬 함수(hash function)들 중 제1 해쉬 함수를 선택하여 상기 제1 어드레스들에 적용하고, 해쉬된 제1 어드레스들에 따른 제1 액세스 방식으로 상기 복수의 메모리 컨트롤러들 중 적어도 하나와 상기 제1 IP를 연결하도록 구성된 버스 연결부를 포함한다.
본 개시의 기술적 사상의 다른 측면에 따른 시스템 온 칩의 동작 방법은, 복수의 어드레스 영역들 중 IP로부터 출력된 어드레스들이 속한 어드레스 영역을 확인하는 단계, 복수의 해쉬 함수들 중 확인된 상기 어드레스 영역에 대응하는 해쉬 함수를 선택하는 단계, 상기 어드레스들에 선택된 상기 해쉬 함수를 적용하는 단계; 및 해쉬된 상기 어드레스들에 따른 액세스 방식으로 복수의 메모리 컨트롤러들 중 적어도 하나와 상기 IP를 연결하는 단계를 포함한다.
본 개시의 기술적 사상의 다른 측면에 따른 복수의 메모리 장치들과 연결된 시스템 온 칩에 있어서, 상기 복수의 메모리 장치들에 각각 연결된 복수의 메모리 컨트롤러들, 상기 복수의 메모리 컨트롤러들에 각각 연결된 복수의 버스 연결부들; 및 제1 어드레스들이 속한 어드레스 영역을 기반으로 복수의 제1 해쉬 함수들 중 어느 하나를 선택하여 상기 제1 어드레스들에 적용하고, 해쉬된 제1 어드레스들에 따른 제1 액세스 방식으로 상기 복수의 버스 연결부들 중 적어도 하나와 연결되도록 구성된 제1 IP를 포함한다.
본 개시의 예시적 실시예에 따른 시스템 온 칩은 복수의 해쉬 함수들을 이용하여 복수의 IP들 각각의 데이터 프로세싱 동작에 적합한 액세스 방식을 선택할 수 있으며, 이를 통해, 시스템 온 칩의 불필요한 전력 소모를 최소화하고, 시스템 온 칩의 성능을 개선할 수 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 메모리 시스템을 개략적으로 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 시스템 온 칩의 동작 방법을 설명하기 위한 순서도이다.
도 3a 및 도 3b는 도 1의 해쉬 함수 & 포트 선택 회로의 구체적인 블록도이다.
도 4는 본 개시의 예시적 실시예에 따른 메모리 시스템의 블록도이다.
도 5a는 도 4의 시스템 온 칩의 동작 방법을 설명하기 위한 순서도이고, 도 5b는 도 4의 시스템 온 칩의 도 5a에 따른 동작을 설명하기 위한 도면이다.
도 6은 도 4의 시스템 온 칩의 동작 방법을 설명하기 위한 순서도이다.
도 7은 도 4의 제1 IP와 제2 IP 간의 동작 방법을 설명하기 위한 순서도이다.
도 8은 본 개시의 예시적 실시예에 따른 시스템 온 칩의 동작 방법을 설명하기 위한 순서도이다.
도 9는 본 개시의 예시적 실시예에 따른 시스템 온 칩의 전력 관리 방법을 설명하기 위한 블록도이다.
도 10은 본 개시의 예시적 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 11a는 본 개시의 예시적 실시예에 따른 메모리 시스템을 나타내는 블록도이고, 도 11b는 도 11a의 메모리 시스템의 배치예를 설명하기 위한 블록도이다.
도 12 및 도 13은 본 개시의 예시적 실시예들이 적용된 전자 시스템을 설명하기 위한 도면이다.
도 14는 본 개시의 예시적 실시예에 따른 시스템 온 칩을 나타내는 블록도이다.
도 1은 본 개시의 예시적 실시예에 따른 메모리 시스템(10)을 개략적으로 나타내는 블록도이다.
도 1을 참조하면, 메모리 시스템(10)은 시스템 온 칩(System on Chip; SoC)(100) 및 제1 내지 제k(단, k는 1 이상의 정수) 메모리 장치(Memory Device; MD)(140_1~140_k)를 포함할 수 있다. 또한, 시스템 온 칩(100)은 제1 내제 제n(단, n은 1 이상의 정수) IP(Intellectual Property)(110_1~110_n), 버스 연결부(120) 및 제1 내지 제k 메모리 컨트롤러(130_1~130_k)를 포함할 수 있다.
예시적 실시예로, 제1 내지 제k 메모리 장치(140_1~140_k)는 휘발성 메모리 장치로 구현될 수 있다. 일 예로, 제1 내지 제k 메모리 장치(140_1~140_k)는 DRAM(Dynamic Random Access Memory), SDRAM (Synchronous DRAM), DDR SDRAM (Double Data Rate SDRAM), LPDDR SDRAM (Low Power Double Data Rate SDRAM), GDDR SDRAM (Graphics Double Data Rate SDRAM), DDR2 SDRAM, DDR3 SDRAM 및 DDR4 SDRAM 등 중 어느 하나로 구현될 수 있다. 더 나아가, 제1 내지 제k 메모리 장치(140_1~140_k)는 비휘발성 메모리 장치로도 구현될 수도 있다.
예시적 실시예로, 제1 내지 제n IP(110_1~110_n)는 시스템 온 칩(100)이 장착되는 기기 또는 시스템의 동작에 따라 CPU(Central Processing Unit), GPU(Graphic Processing Unit), NPU(Neural Processing Unit), VPU(Vision Processing Unit), DSP(Digital Signal Processor) 및 ISP(Image Signal Processor) 중 어느 하나일 수 있다. 다만, 이는 예시적 실시예로, 이에 국한되지 않으며, 제1 내지 제n IP(110_1~110_n)는 시스템 온 칩(100)의 특정 동작을 위해 설계된 기능 블록 또는 시스템 온 칩(100)의 성능을 향상시키기 위해 설계된 기능 블록 등일 수 있다.
제1 내지 제n IP(110_1~110_n)는 각각 데이터 프로세싱 동작을 수행할 수 있으며, 데이터 프로세싱 동작을 위해 데이터 라이트 및 데이터 리드를 위한 메모리 액세스가 필요할 수 있다. 이에 따라, 본 개시의 기술적 사상에 따른 실시예들을 통해 버스 연결부(120)는 제1 내지 제n IP(110_1~110_n)와 제1 내지 제k 메모리 컨트롤러(130_1~130_k) 간의 연결을 지원할 수 있다. 또한, 제1 내지 제n IP(110_1~110_n)는 상호 독립적으로 데이터 프로세싱 동작을 수행할 수 있으며, 버스 연결부(120)는 제1 내지 제n IP(110_1~110_n)에 병렬적 또는 순차적으로 제1 내지 제k 메모리 컨트롤러(130_1~130_k)와의 연결을 지원할 수 있다.
예시적 실시예로, 버스 연결부(120)는 제1 내지 제k 포트(P1~Pk), 해쉬 함수 & 포트 선택 회로(121) 및 복수의 해쉬 함수들(122)을 포함할 수 있다. 제1 내지 제k 포트(P1~Pk)는 각각 제1 내지 제k 메모리 컨트롤러(130_1~130_k)와 연결될 수 있다. 예시적 실시예로, 해쉬 함수 & 포트 선택 회로(121)는 하드웨어로 구현되거나, 소정의 프로세싱 회로로부터 실행되는 소프트웨어로 구현될 수 있다. 또한, 복수의 해쉬 함수들(122)은 시스템 온 칩(100)에 포함된 비휘발성 메모리(미도시)에 저장되어 해쉬 함수 & 포트 선택 회로(121)로부터 리드될 수 있다. 일부 실시예에서, 복수의 해쉬 함수들(122)은 미리 설계되어 비휘발성 메모리(미도시)에 저장될 수 있으며, 복수의 해쉬 함수들(122)은 변경 가능할 수 있다.
복수의 해쉬 함수들(122)은 제1 내지 제n IP(110_1~110_n)로부터 출력된 어드레스들을 고정된 길이의 데이터로 변환하기 위한 함수일 수 있다. 예시적 실시예로, 복수의 해쉬 함수들(122)은 각각 복수의 어드레스 영역들에 대응될 수 있다. 일 예로, 제1 해쉬 함수는 제1 어드레스 영역에 대응되고, 제2 해쉬 함수는 제2 어드레스 영역에 대응될 수 있다. 또한, 예시적 실시예로, 복수의 해쉬 함수들(122)은 각각 대응하는 액세스 방식들이 서로 다르도록 설계될 수 있다. 일부 실시예에서, 제1 내지 제n IP(110_1~110_n)의 상태 및 제1 내지 제k 메모리 컨트롤러(130_1~130_k)의 상태를 고려하여 복수의 해쉬 함수들(122)에 새롭게 설계된 해쉬 함수들이 추가되거나, 복수의 해쉬 함수들(122)의 일부 해쉬 함수들은 수정될 수도 있다. 본 명세서에서, 액세스 방식은 IP들(110_1~110_n)이 메모리 장치들(140_1~140_k)에 액세스하는 방식을 지칭하는 것으로, 메모리 장치들(140_1~140_k) 중 액세스되는 메모리 장치 및 인터리빙 액세스 방식 여부 등으로 결정될 수 있다. 또한, 본 명세서에서, IP들(110_1~110_n)이 메모리 장치들(140_1~140_k)에 액세스하는 것은 IP들(110_1~110_n)이 메모리 컨트롤러들(130_1~130_k)에 액세스하는 것을 포함하는 의미로 해석될 수 있다.
이하에서, 본 개시의 예시적 실시예들의 이해를 돕기 위해 제1 IP(110_1)가 데이터 프로세싱 동작을 위해 제1 어드레스들(ADDR1)을 출력한 경우가 전제되어 서술되며, 본 개시의 예시적 실시예들은 나머지 IP들(110_2~110_n)에 대해서도 적용될 수 있음은 충분히 이해될 것이다.
예시적 실시예로, 해쉬 함수 & 포트 선택 회로(121)는 제1 IP(110_1)로부터 출력된 제1 어드레스들(ADDR1)을 수신하여 제1 어드레스들(ADDR1)이 복수의 어드레스 영역들 중 어디에 속하는지 여부를 확인할 수 있다. 본 명세서에서, 어드레스 영역은 어드레스의 값의 범위를 의미할 수 있다. 복수의 어드레스 영역들의 일부는 크기가 동일할 수 있다. 예를 들어, 제1 어드레스 영역은 '1' 값 내지 '1000' 값으로 설정되고 제2 어드레스 영역은 '1001' 값 내지 '2000' 값으로 설정되어, 제1 어드레스 영역과 제2 어드레스 영역은 크기가 상이할 수 있다. 일부 실시예에서, 복수의 어드레스 영역들 중 일부는 크기가 상이할 수 있다. 예를 들어, 제1 어드레스 영역은 '1'값 내지 '1000'값으로 설정되고 제2 어드레스 영역은 '1001'값 내지 '5000'값으로 설정되어, 제1 어드레스 영역과 제2 어드레스 영역은 크기가 상이할 수 있다.
해쉬 함수 & 포트 선택 회로(121)는 복수의 해쉬 함수들(122) 중 제1 어드레스들(ADDR1)이 속한 어드레스 영역에 대응하는 해쉬 함수를 선택할 수 있다. 해쉬 함수 & 포트 선택 회로(121)는 선택된 해쉬 함수를 제1 어드레스들(ADDR1)에 적용하여 해쉬된 제1 어드레스들을 생성하고, 해쉬된 제1 어드레스들을 기반으로 제1 내지 제k 포트(P1~Pk) 중 적어도 하나를 선택할 수 있다. 일 예로, 해쉬 함수 & 포트 선택 회로(121)는 해쉬된 제1 어드레스들을 기반으로 제1 내지 제k 포트(P1~Pk) 중 적어도 두 개를 교번적으로 선택할 수 있으며, 이는 후술될 인터리빙 액세스 방식과 연관될 수 있다. 다른 예로, 해쉬 함수 & 포트 선택 회로(121)는 해쉬된 제1 어드레스들을 기반으로 제1 내지 제k 포트(P1~Pk) 중 적어도 한 개를 순차적으로 선택할 수 있으며, 이는 후술될 순차적 액세스 방식과 연관될 수 있다. 해쉬 함수 & 포트 선택 회로(121)는 적어도 하나의 선택된 포트(SP)를 통해 제1 어드레스들(ADDR1)을 출력할 수 있다. 본 명세서에서, 포트(P1~Pk)를 선택하는 동작은 메모리 컨트롤러(130_1~130_k)를 선택하는 동작으로 지칭되거나, 해석될 수 있다.
예시적 실시예로, 제1 내지 제k 메모리 컨트롤러(130_1~130_k) 각각은 버스 연결부(120)로부터 전달된 제1 내지 제n IP(110_1~110_n) 중 어느 하나의 어드레스들을 이용하여 제1 내지 제k 메모리 장치(140_1~140_k) 중 자신과 연결된 메모리 장치의 메모리 동작을 제어할 수 있다. 일 예로, 메모리 동작은 라이트 동작 및 리드 동작 중 적어도 하나를 포함할 수 있으며, 라이트 동작 시에 버스 연결부(120)는 어드레스들과 함께 데이터를 더 수신할 수 있다. 또한, 버스 연결부(120)는 메모리 동작을 위한 요청을 제1 내지 제n IP(140_1~140_k) 중 적어도 하나로부터 더 수신할 수 있다. 버스 연결부(120)는 본 개시의 예시적 실시예들에 따른 어드레스들에 대한 출력과 부합하도록 상기 데이터 및 상기 요청을 출력할 수 있다. 예시적 실시예로, 제1 내지 제n IP(110_1~110_n)로부터 출력되는 어드레스들의 포맷은 제1 내지 제k 메모리 장치(140_1~140_k)의 물리적 어드레스들의 포맷과 동일할 수 있다.
예시적 실시예로, 제1 내지 제n IP(110_1~110_n)는 동일 또는 유사한 데이터 액세스 특성을 갖는 IP들로 그룹핑된 복수의 IP 그룹들로 구분될 수 있다. 본 명세서에서, 데이터 액세스 특성은 IP(110_1~110_n)의 데이터 프로세싱 동작에서의 연산 방식 또는 IP(110_1~110_n)의 동작 모드 등이 고려된 것으로서 요구 메모리 용량, 데이터 리드/라이트 요구 속도 등에 관한 것일 수 있다. 예시적 실시예로, 복수의 IP 그룹들 별로 각각 적용 가능한 해쉬 함수의 개수와 해쉬 함수의 조합이 상이할 수 있다. 예를 들어, 제1 IP 그룹은 복수의 해쉬 함수들(122)이 모두 적용될 수 있고, 제2 IP 그룹은 복수의 해쉬 함수들(122) 중 적어도 하나의 특정 해쉬 함수가 적용될 수 있다.
예시적 실시예로, 메인 IP는 제1 내지 제n IP(110_1~110_n) 각각에 복수의 해쉬 함수들(122) 중 적어도 하나를 맵핑하는 방식으로 제1 내지 제n IP(110_1~110_n)를 복수의 IP 그룹들로 그룹핑할 수 있다. 일부 실시예에서, 메인 IP는 제1 내지 제n IP(110_1~110_n)와 복수의 해쉬 함수들(122)의 맵핑 관계를 나타내는 해쉬 함수 맵핑 정보를 생성하여 관리할 수 있다. 일부 실시예에서, 메인 IP는 제1 내지 제n IP(110_1~110_n) 중 어느 하나로서, 구체적으로 메인 IP는 시스템 온 칩(100)의 운영 체제(operating system)를 실행하며, 본 개시의 기술적 사상에 따라 복수의 어드레스 영역들을 각각 구분하여 복수의 해쉬 함수들(122)을 적용하기 위한 제반적인 동작을 수행할 수 있다. 예시적 실시예로, 메인 IP는 CPU로서 구현될 수 있다.
예시적 실시예로, 시스템 온 칩(100)은 전력 관리 집적회로(power management integrated circuit)(미도시)를 더 포함할 수 있다. 전력 관리 집적회로(미도시)는 해쉬 함수 맵핑 정보를 기반으로 제1 내지 제k 메모리 컨트롤러(130_1~130_k)에 대한 전력 관리를 수행할 수 있다. 이에 대한 구체적인 실시예는 도 8 및 도 10b에서 서술된다.
본 개시의 예시적 실시예들에 따른 시스템 온 칩(100)은 복수의 해쉬 함수들(122)을 이용하여 제1 내지 제n IP(110_1~110_n) 각각의 데이터 프로세싱 동작에 적합한 액세스 방식을 선택할 수 있으며, 이를 통해, 시스템 온 칩(100)의 불필요한 전력 소모를 최소화하고, 시스템 온 칩(100)의 성능을 개선할 수 있다.
도 2는 본 개시의 예시적 실시예에 따른 시스템 온 칩의 동작 방법을 설명하기 위한 순서도이다. 도 2에서는 시스템 온 칩의 버스 연결부의 동작을 중심으로 서술하며 이해를 돕기 위해 도 1을 더 참조한다. 이하에서는, 제1 IP(110_1; 도 1)로부터 출력된 제1 어드레스들(ADDR1; 도 1)을 이용한 실시예를 중심으로 서술한다.
도 1 및 도 2를 참조하면, 단계 S100에서 버스 연결부(120)는 제1 IP(110_1)로부터 제1 어드레스들(ADDR1)을 수신할 수 있다. 단계 S110에서 버스 연결부(120)는 제1 어드레스들(ADDR1)이 속한 어드레스 영역을 확인할 수 있다. 구체적으로, 버스 연결부(120)는 제1 어드레스들(ADDR1)의 값들이 포함되는 어드레스 영역을 서치할 수 있다. 단계 S120에서 버스 연결부(120)는 복수의 해쉬 함수들(122) 중에서 확인된 어드레스 영역에 대응하는 해쉬 함수를 선택할 수 있다. 일부 실시예에서, 버스 연결부(120)는 제1 어드레스들(ADDR1)이 속한 어드레스 영역들이 두 개 이상일 때에, 두 개 이상의 해쉬 함수들을 선택할 수 있다. 단계 S130에서 버스 연결부(120)는 선택된 해쉬 함수를 기반으로 제1 어드레스들(ADDR1)을 해쉬할 수 있다. 단계 S140에서 버스 연결부(120)는 제1 내지 제k 포트(P1~Pk) 중 해쉬된 제1 어드레스들을 기반으로 적어도 하나의 포트를 선택할 수 있다. 단계 S150에서 버스 연결부(120)는 제1 어드레스들(ADDR1)을 선택된 적어도 하나의 포트로 출력할 수 있다. 일부 실시예에서, 버스 연결부(120)는 제1 어드레스들(ADDR1)을 별도의 가공없이 선택된 적어도 하나의 포트로 출력할 수 있다. 다른 실시예에서, 버스 연결부(120)는 제1 어드레스들(ADDR1)을 선택된 해쉬 함수를 고려하여 가공한 후에 가공된 제1 어드레스들을 선택된 적어도 하나의 포트로 출력할 수 있다. 이에 대한 구체적인 내용은 도 3b에서 서술된다.
도 3a 및 도 3b는 도 1의 해쉬 함수 & 포트 선택 회로(121, 121')의 구체적인 블록도이다.
도 3a를 참조하면, 해쉬 함수 & 포트 선택 회로(121)는 어드레스 영역 체커(121_1), 멀티플렉서(121_2) 및 디-멀티플렉서(121_3)를 포함할 수 있다.
예시적 실시예로, 어드레스 영역 체커(121_1)는 'A'개의 비트들로 구성된 어드레스들(ADDR)을 수신하여 어드레스들(ADDR)이 속한 어드레스 영역을 확인할 수 있다. 어드레스 영역 체커(121_1)는 확인 결과를 기반으로 제1 내지 제m(단, m은 2 이상의 정수) 해쉬 함수(122') 중 어느 하나를 선택하기 위한 제1 선택 신호를 생성하여 멀티플렉서(121_2)에 제공할 수 있다.
예시적 실시예로, 멀티플렉서(121_2)는 제1 선택 신호에 응답하여 제1 내지 제m 해쉬 함수(122') 중 선택된 해쉬 함수가 적용되어 해쉬된 어드레스들을 출력할 수 있다. 예시적 실시예로, 해쉬된 어드레스들은 'B'개의 비트들로 구성될 수 있고, 'A'개는 'B'개보다 많을 수 있다. 또한, 해쉬된 어드레스들의 비트 구성은 제1 내지 제k 포트(P1~Pk)의 개수에 따를 수 있다. 예를 들어, 제1 내지 제k 포트(P1~Pk)의 개수가 4개인 경우(즉, k=4인 경우), 해쉬된 어드레스들이 제1 내지 제4 포트(P1~P4) 각각을 나타낼 수 있도록 'B'는 '2'로 결정될 수 있다.
예시적 실시예로, 디-멀티플렉서(121_3)는 해쉬된 어드레스들에 응답하여 어드레스들(ADDR)을 제1 내지 제k 포트(P1~Pk) 중 적어도 하나에 선택적으로 출력할 수 있다. 일 예로, 디-멀티플렉서(121_3)는 해쉬된 어드레스들에 응답하여 제1 및 제2 포트(P1, P2)를 통해 어드레스들(ADDR)을 교번적으로 출력할 수 있다. 다른 예로, 디-멀티플렉서(121_3)는 해쉬된 어드레스들에 응답하여 제1 포트(P1)를 통해 어드레스들(ADDR)을 출력할 수 있다. 또 다른 예로, 디-멀티플렉서(121_3)는 해쉬된 어드레스들에 응답하여 제1 및 제2 포트(P1, P2)를 순차적으로 선택하여 어드레스들(ADDR)을 출력할 수 있다.
도 3b를 더 참조하면, 해쉬 함수 & 포트 선택 회로(121')는 도 3a의 해쉬 함수 & 포트 선택 회로(121)와 비교하여 어드레스 프로세싱 회로(121_4)를 더 포함할 수 있다.
예시적 실시예로, 어드레스 프로세싱 회로(121_4)는 제1 내지 제m(단, m은 2 이상의 정수) 해쉬 함수 중 선택된 해쉬 함수에 부합하는 포맷을 갖도록 어드레스들을 가공할 수 있다. 일 예로, 하나의 어드레스를 기준으로 제1 내지 제m 해쉬 함수(122')에서 각각 이용되는 비트들의 개수 및 비트 패턴이 상이할 수 있으며, 이에 따라, 상이한 해쉬 함수를 통과하는 어드레스들에 대하여 추가적인 가공이 요구될 수 있다. 본 명세서에서 비트 패턴이란 비트들의 조합으로 정의될 수 있다. 예를 들어, 제1 해쉬 함수는 하나의 어드레스에 포함된 비트들 중 첫번째 비트 및 세번째 비트, 총 2개의 비트들을 이용할 수 있고, 제2 해쉬 함수는 하나의 어드레스에 포함된 비트들 중 두번째 비트, 네번째 비트, 여섯번째 비트, 총 3개의 비트들을 이용할 수 있다. 어드레스 프로세싱 회로(121_4)는 제1 내지 제m 해쉬 함수(122')에서 이용되는 비트들의 개수 및 비트 패턴을 고려하여 어드레스들을 가공할 수 있다.
다만, 이는 예시적 실시예에 불과한 바, 이에 국한되지 않고, 복수의 해쉬 함수들(122')을 이용하는 실시예들에서 원활한 메모리 액세스를 지원할 수 있도록 어드레스 프로세싱 회로(121_4)는 다양한 방식으로 어드레스들을 가공할 수 있다.
도 3b에서의 해쉬 함수 & 포트 선택 회로(121')의 나머지 구성 및 동작은 도 3a에서 서술된 바, 이하 생략된다.
도 4는 본 개시의 예시적 실시예에 따른 메모리 시스템(20)의 블록도이다.
도 4를 참조하면, 메모리 시스템(20)은 시스템 온 칩(200), 제1 내지 제4 메모리 장치(240_1~240_4)를 포함할 수 있다. 시스템 온 칩(200)은 제1 내지 제4 IP(210_1~210_4), 버스 연결부(220), 제1 내지 제4 메모리 컨트롤러(230_1~230_4)를 포함할 수 있다.
예시적 실시예로, 제1 IP(210_1)는 메인 IP일 수 있으며, 전술한 바와 같이, 본 개시의 예시적 실시예들에 따른 제1 내지 제4 IP들(210_1~210_4)의 메모리 액세스가 가능하도록 제반적인 동작을 수행할 수 있다.
예시적 실시예로, 버스 연결부(220)는 제1 내지 제4 IP(210_1~210_4)로부터 출력된 어드레스들이 속한 어드레스 영역을 확인하고, 확인 결과를 기반으로 복수의 해쉬 함수들 중 어느 하나를 선택하여 어드레스들에 적용함으로써 제1 내지 제4 IP(210_1~210_4)에 메모리 액세스를 지원할 수 있다. 이에 대한 구체적인 실시예는 도 5a 및 도 5b를 더 참조하여 서술한다.
도 5a는 도 4의 시스템 온 칩(200)의 동작 방법을 설명하기 위한 순서도이고, 도 5b는 도 4의 시스템 온 칩(200)의 도 5a에 따른 동작을 설명하기 위한 도면이다.
도 4 및 도 5a를 참조하면, 단계 S200에서 버스 연결부(220)는 제1 IP(210_1)로부터 제1 어드레스들을 수신할 수 있다. 단계 S210에서 버스 연결부(220)는 제1 어드레스들이 제1 어드레스 영역에 속하는지 여부를 확인할 수 있다. 단계 S210이 'NO'인 때에, 단계 S211을 후속하여 버스 연결부(220)는 제1 어드레스들이 제2 어드레스 영역에 속하는지 여부를 확인할 수 있다. 단계 S211이 'NO'인 때에, 단계 S212를 후속하여 버스 연결부(220)는 제1 어드레스들이 제3 어드레스 영역에 속하는지 여부를 확인할 수 있다.
단계 S210이 'YES'인 때에, 단계 S220을 후속하여 버스 연결부(220)는 제1 해쉬 함수를 선택적으로 사용하여 제1 어드레스들에 적용할 수 있다. 단계 S230에서 버스 연결부(220)는 제1 내지 제4 포트(P1~P4)를 인터리빙하여 제1 내지 제4 메모리 컨트롤러(230_1~230_4)에 액세스할 수 있다.
도 5b를 더 참조하면, 제1 내지 제4 메모리 컨트롤러(230_1~230_4)는 단계 S230에서 제1 내지 제4 포트(P1~P4)를 통해 인터리빙 액세스 방식으로 수신된 제1 어드레스들을 기반으로 제1 내지 제4 메모리 장치(240_1~240_4)의 메모리 동작을 제어할 수 있다. 즉, 제1 IP(210_1)는 제1 메모리 장치(240_1), 제2 메모리 장치(240_2), 제3 메모리 장치(240_3), 제2 메모리 장치(240_2) 및 제4 메모리 장치(240_4)의 순서를 반복하여 메모리 액세스할 수 있다.
단계 S211이 'YES'인 때에, 단계 S221를 후속하여 버스 연결부(220)는 제2 해쉬 함수를 선택적으로 사용하여 제1 어드레스들에 적용할 수 있다. 단계 S231에서 버스 연결부(220)는 제1 및 제2 포트(P1, P2)를 인터리빙하여 제1 및 제2 메모리 컨트롤러(230_1, 230_2)에 액세스할 수 있다.
도 5b를 다시 참조하면, 제1 및 제2 메모리 컨트롤러(230_1, 230_2)는 단계 S231에서 제1 및 제2 포트(P1, P2)를 통해 인터리빙 액세스 방식으로 수신된 제1 어드레스들을 기반으로 제1 및 제2 메모리 장치(240_1, 240_2)의 메모리 동작을 제어할 수 있다. 즉, 제1 IP(210_1)는 제1 메모리 장치(240_1) 및 제2 메모리 장치(240_2)의 순서를 반복하여 메모리 액세스할 수 있다.
단계 S212이 'YES'인 때에, 단계 S222를 후속하여 버스 연결부(220)는 제3 해쉬 함수를 선택적으로 사용하여 제1 어드레스들에 적용할 수 있다. 단계 S232에서 버스 연결부(220)는 제1 및 제2 포트(P1, P2)를 통해 제1 및 제2 메모리 컨트롤러(230_1, 230_2)에 순차적으로 액세스할 수 있다.
도 5b를 다시 참조하면, 제1 및 제2 메모리 컨트롤러(230_1, 230_2)는 단계 S232에서 제1 및 제2 포트(P1, P2)를 통해 순차적 액세스 방식으로 수신된 제1 어드레스들을 기반으로 제1 및 제2 메모리 장치(240_1, 240_2)의 메모리 동작을 제어할 수 있다. 즉, 제1 IP(210_1)는 먼저 제1 메모리 장치(240_1)에 메모리 액세스한 후에, 소정의 메모리 용량을 사용하게 되면 순차적으로 제2 메모리 장치(240_2)에 메모리 액세스할 수 있다.
단계 S212가 'NO'인 때에, 단계 S233을 후속하여 버스 연결부(220)는 제4 해쉬 함수를 선택적으로 사용하여 제1 어드레스들에 적용할 수 있다. 단계 S233에서 버스 연결부(220)는 제3 및 제4 포트(P3, P4)를 인터리빙하여 제3 및 제4 메모리 컨트롤러(230_3, 230_4)에 액세스할 수 있다.
도 5b를 다시 참조하면, 제1 및 제2 메모리 컨트롤러(230_1, 230_2)는 단계 S233에서 제3 및 제4 포트(P3, P4)를 통해 인터리빙 액세스 방식으로 수신된 제1 어드레스들을 기반으로 제3 및 제4 메모리 장치(240_3, 240_4)의 메모리 동작을 제어할 수 있다. 즉, 제1 IP(210_1)는 제3 메모리 장치(240_3) 및 제4 메모리 장치(240_4)의 순서를 반복하여 메모리 액세스할 수 있다.
도 5a 및 도 5b에는 적어도 두 개의 포트들을 통한 메모리 액세스의 실시예가 도시되었으나, 이는 예시적 실시예에 불과한 바, 이에 국한되지 않고, 단일 포트를 통한 메모리 액세스의 실시예를 포함한 다양한 실시예들도 가능할 수 있다.
도 6은 도 4의 시스템 온 칩(200)의 동작 방법을 설명하기 위한 순서도이다.
도 4 및 도 6을 참조하면, 단계 S300에서 메인 IP인 제1 IP(210_1)는 대상 IP의 동작 타입을 확인할 수 있다. 대상 IP는 제1 내지 제4 IP(210_1~210_4) 중 어느 하나일 수 있다. 본 명세서에서, 대상 IP의 동작 타입은 대상 IP의 데이터 프로세싱 동작에서의 요구 메모리 용량, 데이터 리드/라이트 요구 속도 등에 기초하여 정의된 것일 수 있고, 대상 IP가 복수의 동작 모드들을 지원하는 때에, 대상 IP의 동작 타입은 현재의 동작 모드에 따라 달라질 수 있다. 또한, 본 명세서에서, 대상 IP의 동작 타입은 대상 IP의 데이터 프로세싱 동작의 타입으로 해석 및 지칭될 수 있다. 단계 S310에서 제1 IP(210_1)는 대상 IP의 동작 타입을 기반으로 복수의 해쉬 함수들 중 어느 하나를 대상 IP에 맵핑할 수 있다. 대상 IP로부터 출력된 어드레스들에는 맵핑된 해쉬 함수가 적용됨으로써 대상 IP의 동작 타입에 적합한 메모리 액세스 방식이 대상 IP에 제공될 수 있다.
도 6의 실시예에 따라 제1 IP(210_1)는 제1 내지 제4 IP(210_1~210_4) 각각에 대하여 해쉬 함수들 중 적어도 하나를 맵핑할 수 있으며, 맵핑 결과를 나타내는 해쉬 함수 맵핑 정보를 생성할 수 있다. 해쉬 함수 맵핑 정보는 시스템 온 칩(200)의 전력 관리를 위해 이용될 수 있으며 이에 대한 구체적인 실시예는 도 8에서 서술한다.
도 7은 도 4의 제1 IP(210_1)와 제2 IP(210_2) 간의 동작 방법을 설명하기 위한 순서도이다.
도 7을 참조하면, 단계 S400에서 제1 IP(210_1)는 제2 IP(210_2)의 데이터 프로세싱 동작의 타입을 확인할 수 있다. 예시적 실시예로, 제1 IP(210_1)는 제2 IP(210_2)로부터 데이터 프로세싱 동작의 타입에 관한 정보를 수신하여 단계 S400을 수행할 수 있다. 단계 S410에서 제1 IP(210_1)는 복수의 해쉬 함수들 중 단계 S400에서 확인된 타입에 부합하는 해쉬 함수를 선택할 수 있다. 단계 S420에서 제1 IP(210_1)는 선택된 해쉬 함수를 기반으로 가상 주소-물리 주소 맵핑 테이블을 생성할 수 있다. 본 명세서에서, 가상 주소-물리 주소 맵핑 테이블은 맵핑 테이블로 지칭될 수 있다. 단계 S410 및 단계 S420은 도 6의 단계 S310에서의 맵핑 동작에 포함되는 것으로 정의될 수 잇다. 단계 S430에서 제1 IP(210_1)는 생성된 맵핑 테이블을 제2 IP(210_2)에 제공할 수 있다. 단계 S440에서 제2 IP(210_2)는 맵핑 테이블을 이용하여 단계 S410에서 선택된 해쉬 함수에 부합하는 어드레스 영역에 속하는 어드레스들을 출력할 수 있다. 구체적으로, 제2 IP(210_2)는 메모리 액세스를 위하여 가상 어드레스들을 먼저 생성하고, 맵핑 테이블을 참조하여 가상 어드레스들을 물리 어드레스들로 변환하여 출력할 수 있다. 이와 같이, 제2 IP(210_2)로부터 출력되는 어드레스들에 단계 S410에서 선택된 해쉬 함수가 적용될 수 있도록 맵핑 테이블은 제2 IP(210_2)의 어드레스들을 가이드할 수 있다.
일부 실시예에서, 제1 IP(210_1)는 제2 IP(210_2) 이외의 나머지 IP들(210_1, 210_3, 210_4; 도 4) 각각의 데이터 프로세싱 동작의 타입에 부합하는 맵핑 테이블들을 생성하여 나머지 IP들(210_1, 210_3, 210_4; 도 4)에 각각 제공할 수 있다.
도 8은 본 개시의 예시적 실시예에 따른 시스템 온 칩의 동작 방법을 설명하기 위한 순서도이다.
도 8을 참조하면, 단계 S500에서 시스템 온 칩의 전력 관리 집적회로는 IP들 각각에 대한 해쉬 함수 맵핑 정보를 확인할 수 있다. 단계 S510에서 전력 관리 집적회로는 해쉬 함수 정보를 기반으로 전력을 관리할 수 있다. 구체적으로, 전력 관리 집적회로는 복수의 IP들 중 일부만이 데이터 프로세싱 동작을 수행하는 경우에 해쉬 함수 정보를 참조하여 일부의 메모리 액세스에 이용되는 메모리 컨트롤러들만 온시키고, 이용되지 않는 메모리 컨트롤러들은 오프시킴으로써 전력 소모를 줄일 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 시스템 온 칩(200)의 전력 관리 방법을 설명하기 위한 블록도이다. 이하에서는, 도 4와 중복되는 내용은 생략되며, 도 5a 및 도 5b에서 서술된 실시예를 전제하여 서술된다.
도 9를 참조하면, 시스템 온 칩(200)은 제1 내지 제4 IP(210_1~210_4), 버스 연결부(220), 제1 내지 제4 메모리 컨트롤러(230_1~230_4), 전력 관리 집적회로(미도시)를 포함할 수 있다.
예시적 실시예로, 제1, 제3 및 제4 IP(210_1, 210_3, 210_4)는 데이터 프로세싱 동작을 수행하지 않는 유휴 모드(Idle mode)이고, 제2 IP(210_2)만이 데이터 프로세싱 동작을 수행할 수 있다. 일부 실시예에 있어서, 제1, 제3 및 제4 IP(210_1, 210_3, 210_4)는 파워 오프 상태일 수 있다.
예시적 실시예로, 전력 관리 집적회로(미도시)는 해쉬 함수 맵핑 정보를 참조하여 현재 데이터 프로세싱 동작을 수행하는 제2 IP(210_2)에 맵핑된 해쉬 함수를 확인할 수 있다. 제2 IP(210_2)에 제2 해쉬 함수가 맵핑된 때에, 도 5a 및 도 5b에서 서술된 바와 같이, 제2 IP(210_2)는 인터리빙 액세스 방식으로 제1 및 제2 메모리 컨트롤러(230_1, 230_2)에 액세스할 수 있다. 즉, 제2 IP(210_2)는 제1 및 제2 메모리 컨트롤러(230_1, 230_2)만을 이용하기 때문에, 전력 관리 집적회로(미도시)는 제3 및 제4 메모리 컨트롤러(230_3, 230_4)를 파워 오프(Power off)시킬 수 있다.
더 나아가, 제3 및 제4 메모리 컨트롤러(230_3, 230_4) 각각의 제어 하에 있는 제3 및 제4 메모리 장치(240_3, 240_4)도 파워 오프될 수 있다.
도 10은 본 개시의 예시적 실시예에 따른 메모리 시스템(30)을 나타내는 블록도이다.
도 10을 참조하면, 메모리 시스템(30)은 시스템 온 칩(300) 및 제1 내지 제4 메모리 장치(340_1~340_4)를 포함할 수 있다. 시스템 온 칩(300)은 제1 내지 제4 IP(310_1~310_4), 제1 내지 제4 버스 연결부(Bus Connection Unit; BCU)(320_1~320_4) 및 제1 내지 제4 메모리 컨트롤러(330_1~330_4)를 포함할 수 있다.
예시적 실시예로, 제1 내지 제4 IP(310_1~310_4)는 각각 모든 제1 내지 제4 버스 연결부(320_1~320_4)에 연결될 수 있다. 제1 내지 제4 버스 연결부(320_1~320_4)는 각각 제1 내지 제4 메모리 컨트롤러(330_1~330_4)와 연결될 수 있다. 제1 내지 제4 메모리 컨트롤러(330_1~330_4)는 각각 제1 내지 제4 메모리 장치(340_1~340_4)와 연결될 수 있다.
예시적 실시예로, 제1 내지 제4 IP(310_1~310_4)는 각각 제1 내지 제4 해쉬 함수(311_1~311_4)를 포함할 수 있다. 일 예로, 제1 IP(310_1)는 자신이 출력하는 어드레스들이 속하는 어드레스 영역을 확인하고, 확인 결과를 기반으로 제1 내지 제4 해쉬 함수(311_1) 중 어느 하나의 해쉬 함수를 선택할 수 있다. 제1 IP(310_1)는 어드레스들에 선택된 해쉬 함수를 적용하여 해쉬된 어드레스들을 생성하고, 해쉬된 어드레스들을 기반으로 제1 내지 제4 버스 연결부(311_1~311_4) 중 적어도 하나를 선택할 수 있다. 제1 IP(310_1)는 선택된 적어도 하나의 버스 연결부에 어드레스들을 출력할 수 있다. 제1 IP(310_1)와 같은 방식으로 나머지 IP들(310_2~310_4)도 제1 내지 제4 버스 연결부(311_1~311_4) 중 적어도 하나를 선택할 수 있다. 즉, 도 10에 도시된 시스템 온 칩(300)에서는 도 1 등에 서술된 시스템 온 칩(100)의 실시예들과 비교하여 복수의 버스 연결부(320_1~320_4)를 포함할 수 있으며, 버스 연결부(120) 대신에 복수의 IP들(310_1~310_4)이 직접 복수의 해쉬 함수들(311_1~311_4) 중 어느 하나를 선택하여 자신의 어드레스들에 적용할 수 있다. 이와 같이, 시스템 온 칩(300)은 복수의 버스 연결부들(320_1~320_4)을 구비하여 복수의 버스 연결부들(320_1~320_4)을 각각 최적의 위치에 개별적으로 배치함으로써 시스템 온 칩(300) 내의 설계 복잡도를 줄일 수 있다. 이 때, 복수의 IP들(310_1~310_4)은 복수의 해쉬 함수들을 이용하여 버스 연결부들(320_1~320_4) 중 적어도 하나를 선택해 어드레스들을 출력할 수 있다.
예시적 실시예로, 제1 내지 제4 버스 연결부(320_1~320_4) 중 어드레스들을 수신한 적어도 하나의 버스 연결부는 각각 자신에게 연결된 메모리 컨트롤러(330_1~330_4)에 어드레스들을 전달할 수 있다.
도 1 내지 도 9에서 서술된 실시예들은 도 10의 메모리 시스템(30)에도 적용될 수 있음은 충분히 이해될 것이다.
한편, 도 10에 도시된 메모리 시스템(30)의 구현예는 예시적 실시예에 불과한 바, 이에 국한되지 않고, 다양한 구조들이 적용 가능하다.
도 11a는 본 개시의 예시적 실시예에 따른 메모리 시스템(40)을 나타내는 블록도이고, 도 11b는 도 11a의 메모리 시스템(40)의 배치예를 설명하기 위한 블록도이다.
도 11a를 참조하면, 메모리 시스템(40)은 시스템 온 칩(400) 및 제1 내지 제4 메모리 장치(440_1~440_4)를 포함할 수 있다. 시스템 온 칩(400)은 제1 내지 제4 IP(410_1~410_4), 제1 내지 제4 버스 연결부(Bus Connection Unit; BCU)(420_1~420_4) 및 제1 내지 제4 메모리 컨트롤러(430_1~430_4)를 포함할 수 있다.
예시적 실시예로, 제1 내지 제3 IP(410_1~410_3)는 각각 제1 내지 제4 해쉬 함수(411_1~411_3)를 포함할 수 있고, 제4 IP(410_4)는 제2 해쉬 함수(411_4')를 포함할 수 있다. 제4 IP(410_4)는 다른 IP들(410_1~410_3)과 비교하여 제1 내지 제4 해쉬 함수(411_1~411_3) 중 제2 해쉬 함수(411_4')만을 포함할 수 있다. 예시적 실시예로, 제4 IP(410_4)는 특정 어드레스 영역(예를 들면, 제2 어드레스 영역)만을 사용하도록 설정 또는 설계될 수 있으며, 이에 따라, 제4 IP(410_4)는 제2 해쉬 함수(411_4')만을 포함할 수 있다.
예시적 실시예로, 제1 내지 제3 IP(410_1~410_3)는 각각 모든 제1 내지 제4 버스 연결부(420_1~420_4)에 연결될 수 있다. 또한, 도 5a 및 도 5b에서 서술된 바와 같이, 제2 해쉬 함수(411_4')가 어드레스들에 적용된 때에는, 제1 및 제2 메모리 컨트롤러(430_1, 430_2)만이 이용되기 때문에 제4 IP(430_4)는 제1 및 제2 버스 연결부(420_1, 420_2)에만 연결될 수 있다.
다만, 도 11a은 예시적 실시예에 불과한 바, 제1 내지 제4 IP(410_1~410_3) 중 적어도 하나는 복수의 해쉬 함수들 중 일부만을 이용할 수 있으며, 제1 내지 제4 IP(410_1~410_3)는 자신이 이용하는 해쉬 함수들에 따라 버스 연결부(420_1~420_4)에 다양하게 연결될 수 있다.
도 11b를 더 참조하면, 제4 IP(430_4)는 자신과 연결된 제1 및 제2 버스 연결부(420_1, 420_2)에 인접하도록 배치될 수 있다. 이에 따라, 시스템 온 칩(400)의 내부 라우팅의 복잡도를 줄이고, 효율적인 시스템 온 칩(400)의 설계가 가능할 수 있다.
또한, 예시적 실시예로, 제4 IP(430_4)만이 데이터 프로세싱 동작을 수행하는 때에, 전력 관리를 위해 이용되지 않는 제3 및 제4 버스 연결부(420_3, 420_4), 제3 및 제4 메모리 컨트롤러(430_3, 430_4)를 파워 오프시킬 수 있다.
도 12 및 도 13은 본 개시의 예시적 실시예들이 적용된 전자 시스템(1000)을 설명하기 위한 도면이다.
도 12를 참조하면, 전자 시스템(1000)은 인터페이스 장치(1100)(또는, 인터페이스 칩), 본 개시의 예시적 실시예들이 적용된 시스템 온 칩(1200), 인터페이스 장치(1100)(또는, 인터페이스 칩) 및 반도체 칩(1300)을 포함할 수 있다. 일부 실시예에 있어서, 시스템 온 칩(1200)은 프로세싱 장치로 지칭되고, 반도체 칩(1300)은 메모리 장치로 지칭될 수 있다. 시스템 온 칩(1200)은 어플리케이션 프로세서로서 호스트의 기능을 수행할 수 있다. 시스템 온 칩 (1200)은 소정의 표준 버스 규격을 갖는 프로토콜이 적용된 시스템 버스(미도시)를 포함할 수 있으며, 시스템 버스(미도시)에 연결되는 각종 IP들(미도시)을 포함할 수 있다. 시스템 버스(미도시)는 도 1 내지 도 11b에서의 버스 연결부일 수 있다.
시스템 버스(미도시)의 표준 규격으로서, 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, OCPIP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 적용될 수도 있다.
IP들(미도시) 및 시스템 버스(미도시)는 도 1 내지 도 11b에서 서술된 예시적 실시예들이 적용될 수 있다. 즉, IP들(미도시) 및 시스템 버스(미도시)는 복수의 해쉬 함수들을 이용하여 반도체 칩(1300)으로의 메모리 액세스를 지원할 수 있다.
반도체 칩(1300)의 구성을 서술하기 위해 도 13을 더 참조한다. 반도체 칩(1300)은 서로 독립된 인터페이스를 갖는 다수의 채널들(CH1~CH8)을 포함하는 HBM(High Bandwidth Memory)일 수 있다. 반도체 칩(1300)은 복수의 다이들을 포함할 수 있는데, 버퍼 다이(1310)와 버퍼 다이(1310) 상에 적층된 복수의 메모리 다이들(1320)을 포함할 수 있다. 예컨대, 제1 메모리 다이(1321)가 제1 채널(CH1) 및 제3 채널(CH3)을 포함하고, 제2 메모리 다이(1322)가 제2 채널(CH2) 및 제4 채널(CH4)을 포함하며, 제3 메모리 다이(1323)가 제5 채널(CH5) 및 제7 채널(CH7)을 포함하며, 제4 메모리 다이(1324)가 제6 채널(CH6) 및 제8 채널(CH8)을 포함할 수 있다.
버퍼 다이(1310)는 반도체 칩(1300)의 외면에 형성된 도전 수단들, 예컨대 범프들 또는 솔더볼들을 통해 인터페이스 장치(1100)와 연결될 수 있다. 버퍼 다이(1310)는 인터페이스 장치(1100)를 통해 시스템 온 칩(1200)으로부터 커맨드, 어드레스 및 데이터를 수신할 수 있으며, 수신된 커맨드, 어드레스 및 데이터를 복수의 메모리 다이들(1320) 중 적어도 하나의 채널로 제공할 수 있다. 또한, 버퍼 다이(1310)는 복수의 메모리 다이들(1320) 중 적어도 하나의 채널에서 출력되는 데이터를 인터페이스 장치(1100)를 통해 시스템 온 칩(1200)으로 제공할 수 있다.
반도체 칩(1300)는 복수의 메모리 다이들(1320)을 관통하는 복수 개의 스루 실리콘 비아(TSV; 1330)들을 포함할 수 있다. 채널들(CH1~CH8) 각각은 좌우로 분리되어 배치될 수 있는데, 예시적으로, 제4 메모리 다이(1324)에서 제6 채널(CH6)은 의사 채널들(CH6a, CH6b)로 분리되고 제8 채널(CH8)은 의사 채널들(CH8a, CH8b)로 분리될 수 있다. TSV(1330)들은 제6 채널(CH6)의 의사 채널들(CH6a, CH6b) 사이에, 그리고 제8 채널(CH8)의 의사 채널들(CH8a~CH8b) 사이에 배치될 수 있다.
버퍼 다이(1310)는 TSV 영역(1316), SERDES 영역(1314) 및 HBM 물리 계층 인터페이스(PHYsical layer interface) 즉, HBM PHY 영역(1312)을 포함할 수 있다. TSV 영역(1316)은 복수의 메모리 다이들(1320)과의 통신을 위한 TSV(1330)가 형성되는 영역이다.
SERDES 영역(1314)은 시스템 온 칩(1200)의 프로세싱 스루풋이 증가함에 따라, 그리고 메모리 대역폭에 대한 요구들이 증가함에 따라, JEDEC(Joint Electron Device Engineering Council) 표준의 SERDES 인터페이스를 제공하는 영역이다. SERDES 영역(1314)은 SERDES 송신기 부분, SERDES 수신기 부분 및 제어기 부분을 포함할 수 있다. SERDES 송신기 부분은 병렬-투-직렬 회로 및 송신기를 포함하고, 병렬 데이터 스트림을 수신하고, 수신된 병렬 데이터 스트림을 직렬화 할 수 있다. SERDES 수신기 부분은 수신기 증폭기, 등화기, 클럭 및 데이터 복원(CDR) 회로 및 직렬-투-병렬 회로를 포함하고, 직렬 데이터 스트림을 수신하고, 수신된 직렬 데이터 스트림을 병렬화 할 수 있다. 제어기 부분은 에러 검출 회로, 에러 정정 회로 및 FIFO(First In First Out)와 같은 레지스터들을 포함한다.
HBM PHY 영역(1312)은 시스템 온 칩(1200)과 반도체 칩(1300) 사이의 효율적인 통신에 요구되는 신호들, 주파수, 타이밍, 구동, 상세 동작 파라미터 및 기능성(functionality)을 위해 제공되는 물리적 또는 전기적 계층과 논리적 계층을 포함할 수 있다. HBM PHY 영역(1312)은 메모리 셀에 대응하는 로우 및 칼럼을 선택하는 것, 메모리 셀에 데이터를 기입하는 것, 또는 기입된 데이터를 독출하는 것과 같은 메모리 인터페이싱을 수행할 수 있다. HBM PHY 영역(1312)은 JEDEC 표준의 HBM 프로토콜의 특징들을 지원할 수 있다.
인터페이스 장치(1100)는 시스템 온 칩(1200)에서 제공된 신호들을 등화시켜 반도체 칩(1300)에 전달할 수 있고, 반도체 칩(1300)에서 제공된 신호들을 등화시켜 시스템 온 칩(1200)에 전달할 수 있다. 인터페이스 장치(1100)는 시스템 온 칩(1200)과 반도체 칩(1300) 사이의 데이터 통신이 원활하게 수행될 수 있도록 인터페이싱할 수 있다.
한편, 도 13에 도시된 반도체 칩(1300)은 예시적 실시예에 불과한 바, 이에 국한되지 않고, 다양한 형태의 메모리 구조들이 구현 가능할 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 시스템 온 칩(2000)을 나타내는 블록도이다. 시스템 온 칩(2000)은 컴퓨팅 시스템이나 다른 전자 시스템의 부품들을 집적한 집적회로를 지칭할 수 있다. 예를 들면, 시스템 온 칩 중 하나로서 어플리케이션 프로세서(application processor; AP)는 프로세서 및 다른 기능들을 위한 부품들을 포함할 수 있다.
도 14를 참조하면, 시스템 온 칩(2000)은 CPU(2100), DSP(Digital Signal Processor)(2200), GPU(Graphic Processing Unit)(2300), 내장 메모리(2400), 통신 인터페이스(2500), 메모리 인터페이스(2600) 및 시스템 버스(2700)를 포함할 수 있다. 시스템 온 칩(2000)의 구성요소들은 시스템 버스(2700)를 통해서 상호 통신할 수 있다.
CPU(2100)는 명령어들을 처리할 수 있고, 시스템 온 칩(2000)에 포함된 구성요소들의 동작을 제어할 수 있다. 예를 들면, CPU(2100)는 일련의 명령어들을 처리함으로써, 운영체제를 구동할 수 있고, 운영체제 상의 어플리케이션들을 실행할 수 있다. DSP(2200)는 디지털 신호, 예컨대 통신 인터페이스(2500)로부터 제공되는 디지털 신호를 처리함으로써 유용한 데이터를 생성할 수 있다. GPU(2300)는 내장 메모리(2400) 또는 메모리 인터페이스(2600)로부터 제공되는 이미지 데이터로부터 디스플레이 장치를 통해서 출력되는 영상을 위한 데이터를 생성할 수도 있고, 이미지 데이터를 인코딩할 수도 있다. 내장 메모리(2400)는 CPU(2100), DSP(2200) 및 GPU(2300)가 동작하는데 필요한 데이터를 저장할 수 있다. 메모리 인터페이스(2600)는 시스템 온 칩(2000)의 외부 메모리, 예컨대 DRAM(Dynamic Random Access Memory), 플래시 메모리 등에 대한 인터페이스를 제공할 수 있다.
통신 인터페이스(2500)는 시스템 온 칩(2000) 외부와의 직렬 통신을 제공할 수 있다. 예를 들면, 통신 인터페이스(2500)는 이더넷(Ethernet)에 접속할 수 있고, 직렬 통신을 위하여 SERDES를 포함할 수 있다.
도 1 내지 도 11b에 서술된 예시적 실시예들은 CPU(2100), DSP(2200), GPU(2300), 시스템 버스(2700) 및 메모리 인터페이스(2600)에 적용될 수 있다. 구체적으로, 시스템 버스(2700)는 복수의 해쉬 함수들을 어드레스 영역 별로 선택적으로 이용하여 CPU(2100), DSP(2200) 및 GPU(2300) 각각에 적합한 메모리 액세스를 제공할 수 있다. 메모리 인터페이스(2600)는 시스템 버스(2700)로부터 전달된 어드레스들을 메모리 장치들(미도시)에 전송할 수 있다. 메모리 인터페이스(2600)는 도 1 내지 도 11b의 메모리 컨트롤러들의 역할을 수행할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시 예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시 예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 복수의 메모리 장치들과 연결된 시스템 온 칩에 있어서,
    상기 복수의 메모리 장치들에 각각 연결된 복수의 메모리 컨트롤러들;
    상기 복수의 메모리 컨트롤러들 중 적어도 하나를 이용하여 데이터 프로세싱 동작을 수행하도록 구성된 복수의 IP(Intellectual Property)들; 및
    상기 복수의 IP들 중 제1 IP로부터 수신된 제1 어드레스들이 속한 제1 어드레스 영역을 기반으로 복수의 해쉬 함수(hash function)들 중 제1 해쉬 함수를 선택하여 상기 제1 어드레스들에 적용하고, 해쉬된 제1 어드레스들에 따른 제1 액세스 방식으로 상기 복수의 메모리 컨트롤러들 중 적어도 하나와 상기 제1 IP를 연결하도록 구성된 버스 연결부를 포함하는 시스템 온 칩.
  2. 제1항에 있어서,
    상기 제1 액세스 방식을 포함하고, 상기 복수의 해쉬 함수들 각각에 대응하는 복수의 액세스 방식들은 서로 다른 것을 특징으로 하는 시스템 온 칩.
  3. 제2항에 있어서,
    상기 복수의 액세스 방식들은,
    상기 복수의 메모리 컨트롤러들 중 액세스되는 적어도 하나의 메모리 컨트롤러 및 인터리빙 액세스(interleaving access) 방식 여부로 결정되는 것을 특징으로 하는 시스템 온 칩.
  4. 제1항에 있어서,
    상기 버스 연결부는,
    상기 복수의 메모리 컨트롤러들에 각각 연결된 복수의 포트들을 포함하고, 상기 복수의 포트들 중 상기 제1 액세스 방식에 따라 선택된 적어도 하나의 포트를 통해 상기 제1 어드레스들을 출력하도록 구성된 것을 특징으로 하는 시스템 온 칩.
  5. 제4항에 있어서,
    상기 버스 연결부는,
    상기 선택된 적어도 하나의 포트를 통해 상기 제1 어드레스들을 출력하기 전에, 상기 제1 어드레스들을 선택된 상기 제1 해쉬 함수를 고려하여 상기 제1 어드레스들을 가공하도록 구성된 것을 특징으로 하는 시스템 온 칩.
  6. 제1항에 있어서,
    상기 버스 연결부는,
    상기 복수의 IP들 중 제2 IP로부터 수신된 제2 어드레스들이 속한 제2 어드레스 영역을 기반으로 상기 복수의 해쉬 함수들 중 제2 해쉬 함수를 선택하여 상기 제2 어드레스들에 적용하고, 해쉬된 제2 어드레스들에 따른 제2 액세스 방식으로 상기 복수의 메모리 컨트롤러들 중 적어도 하나와 상기 제2 IP를 연결하도록 구성된 것을 특징으로 하는 시스템 온 칩.
  7. 제1항에 있어서,
    상기 복수의 IP들은, 메인 IP를 더 포함하고,
    상기 메인 IP는,
    상기 제1 IP가 상기 제1 어드레스들을 출력하기에 앞서 상기 복수의 해쉬 함수들 중 상기 제1 해쉬 함수를 상기 제1 IP에 맵핑하도록 구성된 것을 특징으로 하는 시스템 온 칩.
  8. 제7항에 있어서,
    상기 메인 IP는,
    상기 제1 IP의 데이터 프로세싱 동작의 타입을 기반으로 상기 복수의 해쉬 함수들 중 상기 제1 해쉬 함수를 상기 제1 IP에 맵핑하도록 구성된 것을 특징으로 하는 시스템 온 칩.
  9. 제1항에 있어서,
    상기 시스템 온 칩은,
    상기 복수의 IP들과 상기 복수의 해쉬 함수들 간의 맵핑 정보를 기반으로 상기 복수의 메모리 컨트롤러들에 대한 온/오프를 제어하도록 구성된 전력 관리 집적회로를 더 포함하는 것을 특징으로 하는 시스템 온 칩.
  10. 복수의 메모리 장치들과 연결된 시스템 온 칩에 있어서,
    상기 복수의 메모리 장치들에 각각 연결된 복수의 메모리 컨트롤러들;
    상기 복수의 메모리 컨트롤러들에 각각 연결된 복수의 버스 연결부들; 및
    제1 어드레스들이 속한 어드레스 영역을 기반으로 복수의 제1 해쉬 함수들 중 어느 하나를 선택하여 상기 제1 어드레스들에 적용하고, 해쉬된 제1 어드레스들에 따른 제1 액세스 방식으로 상기 복수의 버스 연결부들 중 적어도 하나와 연결되도록 구성된 제1 IP를 포함하는 시스템 온 칩.
KR1020220026911A 2021-11-15 2022-03-02 시스템 온 칩 및 이의 동작 방법 KR20230071015A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/987,551 US20230152990A1 (en) 2021-11-15 2022-11-15 System on chip and operation method thereof
CN202211425816.XA CN116955230A (zh) 2021-11-15 2022-11-15 片上系统及其操作方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210157091 2021-11-15
KR1020210157091 2021-11-15

Publications (1)

Publication Number Publication Date
KR20230071015A true KR20230071015A (ko) 2023-05-23

Family

ID=86544484

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220026911A KR20230071015A (ko) 2021-11-15 2022-03-02 시스템 온 칩 및 이의 동작 방법

Country Status (1)

Country Link
KR (1) KR20230071015A (ko)

Similar Documents

Publication Publication Date Title
US10642612B2 (en) Memory device performing parallel arithmetic processing and memory module including the same
JP5784582B2 (ja) コンフィギュラブルな帯域幅メモリ・デバイスおよび方法
US20200058363A1 (en) Memory devices and methods for managing error regions
US7929368B2 (en) Variable memory refresh devices and methods
US6725319B2 (en) Memory device interface memory translator hub
JP5413690B2 (ja) 積層メモリデバイスダイスを用いるメモリシステムおよび方法、ならびにそのメモリシステムを用いるシステム
US10725957B1 (en) Uniform memory access architecture
CN107480077A (zh) 用于执行内部处理的存储器设备及其操作方法
US11474950B2 (en) Memory controller including plurality of address mapping tables, system on chip, and electronic device
JP2008171432A (ja) データ・アクセスおよびマルチチップ・コントローラ
JP4527643B2 (ja) メモリ装置及びメモリ装置の動作方法
US10162522B1 (en) Architecture of single channel memory controller to support high bandwidth memory of pseudo channel mode or legacy mode
WO2023274032A1 (zh) 存储访问电路、集成芯片、电子设备及存储访问方法
KR20230071015A (ko) 시스템 온 칩 및 이의 동작 방법
US20230152990A1 (en) System on chip and operation method thereof
KR20230043619A (ko) 내부 프로세싱 동작에 대한 타이밍 파라미터들 및 전력 소모를 줄이는 메모리 장치 및 이를 구현하는 방법
WO2021139733A1 (zh) 一种对内存进行分配的方法、设备及计算机可读存储介质
CN116955230A (zh) 片上系统及其操作方法
US20240079036A1 (en) Standalone Mode
US7057968B2 (en) Semiconductor integrated circuit device
KR102345539B1 (ko) 내부 프로세스를 수행하는 메모리 장치 및 그 동작방법
CN112614523A (zh) 存储系统、存储控制器和存储芯片