KR20250032780A - Electronic device, memory device, and operating method thereof - Google Patents
Electronic device, memory device, and operating method thereof Download PDFInfo
- Publication number
- KR20250032780A KR20250032780A KR1020230172727A KR20230172727A KR20250032780A KR 20250032780 A KR20250032780 A KR 20250032780A KR 1020230172727 A KR1020230172727 A KR 1020230172727A KR 20230172727 A KR20230172727 A KR 20230172727A KR 20250032780 A KR20250032780 A KR 20250032780A
- Authority
- KR
- South Korea
- Prior art keywords
- bank
- address
- way
- group
- control signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
전자 장치, 메모리 장치, 및 메모리 장치의 동작 방법이 개시된다. 본 개시의 기술적 사상에 따른 메모리 장치는, 전력을 공급받아 제1 어드레스에 대응되는 제1 캐시 라인을 저장하는 제1 웨이 그룹을 포함하는 제1 뱅크, 전력을 공급받아 제2 어드레스에 대응되는 제2 캐시 라인을 저장하는 제2 웨이 그룹을 포함하는 제2 뱅크, 제1 뱅크에 전력의 공급을 중단할 것을 지시하는 전력 제어 신호, 및 제1 어드레스를 기초로, 제2 뱅크를 지시하는 제2 타겟, 및 제1 어드레스를 출력하도록 구성된 캐시 컨트롤러, 및 제1 어드레스, 전력 제어 신호 및 제2 타겟을 기초로, 제1 어드레스를 제2 뱅크에 전달하도록 구성된 웨이 선택기를 포함한다.An electronic device, a memory device, and a method of operating the memory device are disclosed. A memory device according to the technical idea of the present disclosure includes a first bank including a first way group which receives power and stores a first cache line corresponding to a first address, a second bank including a second way group which receives power and stores a second cache line corresponding to a second address, a power control signal which instructs to stop supplying power to the first bank, and a second target which instructs the second bank based on the first address, and a cache controller configured to output the first address, and a way selector which is configured to transfer the first address to the second bank based on the first address, the power control signal, and the second target.
Description
본 개시의 기술적 사상은 전자 장치에 관한 것이며, 보다 구체적으로는, 플러시의 동작 시간, 응답 시간, 처리 속도, 소비 전력 등을 개선하기 위한 전자 장치, 메모리 장치, 및 메모리 장치의 동작 방법에 관한 것이다.The technical idea of the present disclosure relates to an electronic device, and more specifically, to an electronic device, a memory device, and an operating method of the memory device for improving the operation time, response time, processing speed, power consumption, etc. of a flush.
반도체 메모리는, 컴퓨터, 무선 통신 장치 등과 같은 다양한 전자 장치에 데이터를 저장하기 위해 널리 사용된다. 반도체 메모리의 종류의 하나인 SRAM (Static Random Access Memory)에서, 단일 포트 SRAM, 및 단일 포트 SRAM보다 고속도의 리드 및 라이트 동작 수행이 가능한 듀얼 포트 SRAM이 개발되었다. 통상의 단일 포트 SRAM은 하나의 단위 메모리 셀이 6개의 트랜지스터로 구성되어 리드 및 라이트 동작을 순차적으로 수행할 수 있는 반면, 듀얼 포트 SRAM은 통상의 단일 포트 에스램에 2개의 액티브 트랜지스터를 추가하여 리드 및 라이트 동작을 듀얼모드로 수행할 수 있도록 구성되어 초고속을 요구하는 집적 회로에 사용되고 있다.Semiconductor memory is widely used to store data in various electronic devices such as computers, wireless communication devices, etc. In SRAM (Static Random Access Memory), which is one type of semiconductor memory, a single-port SRAM and a dual-port SRAM capable of performing read and write operations at a higher speed than the single-port SRAM have been developed. While a conventional single-port SRAM has one unit memory cell composed of six transistors and can perform read and write operations sequentially, a dual-port SRAM adds two active transistors to a conventional single-port SRAM and is configured to perform read and write operations in dual mode, and is used in integrated circuits that require ultra-high speed.
본 개시의 기술적 사상은, 플러시의 동작 시간, 응답 시간, 처리 속도, 소비 전력 등을 개선하기 위한 전자 장치, 메모리 장치 및 그의 동작 방법을 제공한다. The technical idea of the present disclosure provides an electronic device, a memory device and an operating method thereof for improving the operation time, response time, processing speed, power consumption, etc. of a flush.
본 개시의 기술적 사상에 따른 메모리 장치는, 전력을 공급받아 제1 어드레스에 대응되는 제1 캐시 라인을 저장하는 제1 웨이 그룹을 포함하는 제1 뱅크, 전력을 공급받아 제2 어드레스에 대응되는 제2 캐시 라인을 저장하는 제2 웨이 그룹을 포함하는 제2 뱅크, 제1 뱅크에 전력의 공급을 중단할 것을 지시하는 전력 제어 신호, 및 제1 어드레스를 기초로, 제2 뱅크를 지시하는 제2 타겟을 출력하도록 구성된 캐시 컨트롤러, 및 제1 어드레스, 전력 제어 신호, 및 제2 타겟을 기초로, 제1 어드레스를 제2 뱅크에 전달하도록 구성된 웨이 선택기를 포함한다.A memory device according to the technical idea of the present disclosure includes a first bank including a first way group which receives power and stores a first cache line corresponding to a first address, a second bank including a second way group which receives power and stores a second cache line corresponding to a second address, a cache controller configured to output a power control signal which instructs to stop supplying power to the first bank, and a second target which instructs the second bank based on the first address, and a way selector configured to transfer the first address to the second bank based on the first address, the power control signal, and the second target.
또한, 본 개시의 기술적 사상에 따른 메모리 장치는, 제1 웨이 그룹을 포함하는 제1 뱅크, 전력을 공급받아 제1 어드레스에 대응되는 제1 캐시 라인 및 제2 어드레스에 대응되는 제2 캐시 라인을 저장하는 제2 웨이 그룹을 포함하는 제2 뱅크, 제1 뱅크에 전력을 공급할 것을 지시하는 전력 제어 신호, 및 제1 어드레스를 기초로, 제1 뱅크를 지시하는 제1 타겟을 출력하도록 구성된 캐시 컨트롤러, 및 제1 어드레스, 전력 제어 신호, 및 제1 타겟을 기초로, 제1 어드레스를 제1 뱅크에 전달하도록 구성된 웨이 선택기를 포함한다.In addition, a memory device according to the technical idea of the present disclosure includes a first bank including a first way group, a second bank including a second way group which receives power and stores a first cache line corresponding to a first address and a second cache line corresponding to a second address, a cache controller configured to output a power control signal instructing to supply power to the first bank, and a first target instructing the first bank based on the first address, and a way selector configured to transfer the first address to the first bank based on the first address, the power control signal, and the first target.
또한, 본 개시의 기술적 사상에 따른 메모리 장치의 동작 방법은, 독립적으로 동작 가능한 복수의 뱅크들 중 적어도 하나의 뱅크를 포함하는 제1 뱅크 그룹에 전력의 공급 여부를 지시하는 전력 제어 신호를 수신하는 단계, 어드레스를 포함하는 트랜잭션 및 전력 제어 신호를 기초로, 제1 뱅크 그룹 또는 복수의 뱅크들 중 제1 뱅크 그룹에서 제외되고 전력을 공급받는 적어도 하나의 뱅크를 포함하는 제2 뱅크 그룹을 선택하는 단계, 및 트랜잭션 및 전력 제어 신호를 기초로 선택된 뱅크 그룹에 트랜잭션을 전달하는 단계를 포함한다.In addition, a method of operating a memory device according to the technical idea of the present disclosure includes a step of receiving a power control signal for instructing whether to supply power to a first bank group including at least one bank among a plurality of independently operable banks, a step of selecting a second bank group including at least one bank that is excluded from the first bank group and is supplied with power among the first bank group or the plurality of banks based on a transaction including an address and the power control signal, and a step of transmitting a transaction to the selected bank group based on the transaction and the power control signal.
또한, 본 개시의 기술적 사상에 따른 전자 장치는, 동작 요청 및 어드레스를 포함하는 트랜잭션을 출력하도록 구성된 프로세서, 전력을 생성하고, 복수의 뱅크들 중 적어도 하나의 뱅크를 포함하는 제1 뱅크 그룹에 전력의 공급 여부를 지시하는 전력 제어 신호를 출력하는 전력 관리기, 및 전력을 공급받아 독립적으로 동작 가능한 복수의 뱅크들, 트랜잭션 및 전력 제어 신호를 기초로, 제1 뱅크 그룹 또는 복수의 뱅크들 중 제1 뱅크 그룹에서 제외되고 전력을 공급받는 적어도 하나의 뱅크를 포함하는 제2 뱅크 그룹을 선택하는 캐시 컨트롤러, 및 트랜잭션 및 전력 제어 신호를 기초로 선택된 뱅크 그룹에 트랜잭션을 전달하는 웨이 선택기를 포함하는 메모리를 포함한다.In addition, an electronic device according to the technical idea of the present disclosure includes a memory including a processor configured to output a transaction including an operation request and an address, a power manager configured to generate power and output a power control signal instructing whether to supply power to a first bank group including at least one bank among a plurality of banks, and a plurality of banks that can be independently operated by receiving power, a cache controller configured to select the first bank group or a second bank group including at least one bank excluded from the first bank group and supplied with power among the plurality of banks based on the transaction and the power control signal, and a way selector configured to transmit the transaction to the bank group selected based on the transaction and the power control signal.
본 개시의 기술적 사상에 의하면, 플러시의 동작 시간, 응답 시간, 처리 속도, 소비 전력 등을 개선하는 효과가 있다.According to the technical idea of the present disclosure, there is an effect of improving the operation time, response time, processing speed, power consumption, etc. of the flush.
본 개시의 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.The effects obtainable from the embodiments of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned can be clearly derived and understood by a person having ordinary knowledge in the technical field to which the embodiments of the present disclosure belong from the following description. That is, unintended effects resulting from practicing the embodiments of the present disclosure can also be derived from the embodiments of the present disclosure by a person having ordinary knowledge in the technical field.
도 1은 본 개시의 예시적인 실시예들에 따른 전자 장치의 블록도이다.
도 2a, 도 2b, 및 도 2c는 전력 제어 신호에 따라 해시 함수를 선택하는 예시적인 실시예들을 설명하기 위한 도면들이다.
도 3, 도 4, 및 도 5는 본 개시의 일부 실시예들에 따른 메모리의 동작을 설명하기 위한 도면들이다.
도 6은 본 개시의 일 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도이다.
도 7은 도 6에 따른 동작이 수행된 경우에 제1 트랜잭션을 뱅크에 전달하는 예시적인 실시예를 설명하기 위한 도면이다.
도 8은 도 6에 따른 동작이 수행된 경우에 제2 트랜잭션을 뱅크에 전달하는 예시적인 실시예를 설명하기 위한 도면이다.
도 9는 본 개시의 다른 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도이다.
도 10은 도 9에 따른 동작이 수행된 경우에 트랜잭션을 뱅크에 전달하는 예시적인 실시예를 설명하기 위한 도면이다.
도 11은 본 개시의 또 다른 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도이다.
도 12는 도 11에 따른 동작이 수행된 경우에 트랜잭션을 뱅크에 전달하는 예시적인 실시예를 설명하기 위한 도면이다.
도 13은 본 개시의 예시적인 실시예에 따른 웨이 선택기의 블록도이다.
도 14, 도 15, 및 도 16은 본 개시의 다른 일부 실시예들에 따른 전자 장치의 동작을 설명하기 위한 도면들이다.
도 17은 본 개시의 예시적인 실시예들에 따른 캐시 히트 동작 및 캐시 미스 동작을 설명하기 위한 흐름도이다.
도 18은 본 개시의 예시적인 실시예에 따른 뱅크의 블록도이다.
도 19는 본 개시의 예시적인 실시예에 따른 메모리 셀의 회로도이다.
도 20은 본 개시의 예시적인 실시예들에 따른 전자 장치의 동작 방법을 설명하기 위한 흐름도이다.FIG. 1 is a block diagram of an electronic device according to exemplary embodiments of the present disclosure.
FIGS. 2A, 2B, and 2C are diagrams illustrating exemplary embodiments of selecting a hash function according to a power control signal.
FIGS. 3, 4, and 5 are drawings illustrating the operation of a memory according to some embodiments of the present disclosure.
FIG. 6 is a flowchart illustrating the operation of an electronic device according to one embodiment of the present disclosure.
FIG. 7 is a drawing for explaining an exemplary embodiment of transmitting a first transaction to a bank when the operation according to FIG. 6 is performed.
FIG. 8 is a drawing for explaining an exemplary embodiment of transmitting a second transaction to a bank when the operation according to FIG. 6 is performed.
FIG. 9 is a flowchart illustrating the operation of an electronic device according to another embodiment of the present disclosure.
FIG. 10 is a drawing for explaining an exemplary embodiment of transmitting a transaction to a bank when the operation according to FIG. 9 is performed.
FIG. 11 is a flowchart illustrating the operation of an electronic device according to another embodiment of the present disclosure.
FIG. 12 is a drawing for explaining an exemplary embodiment of transmitting a transaction to a bank when the operation according to FIG. 11 is performed.
FIG. 13 is a block diagram of a way selector according to an exemplary embodiment of the present disclosure.
FIGS. 14, 15, and 16 are drawings for explaining the operation of an electronic device according to some other embodiments of the present disclosure.
FIG. 17 is a flowchart illustrating a cache hit operation and a cache miss operation according to exemplary embodiments of the present disclosure.
FIG. 18 is a block diagram of a bank according to an exemplary embodiment of the present disclosure.
FIG. 19 is a circuit diagram of a memory cell according to an exemplary embodiment of the present disclosure.
FIG. 20 is a flowchart illustrating a method of operating an electronic device according to exemplary embodiments of the present disclosure.
이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.Hereinafter, embodiments of the present disclosure will be described in detail with reference to the attached drawings.
도 1은 본 개시의 예시적인 실시예들에 따른 전자 장치의 블록도이다. FIG. 1 is a block diagram of an electronic device according to exemplary embodiments of the present disclosure.
도 1을 참조하면, 본 개시의 일 실시예에 따른 전자 장치는 스마트폰, 웨어러블 장치 등 모바일 장치에 포함될 수 있고, 이때 전자 장치(10)는 어플리케이션 프로세서(AP) 또는 시스템 온 칩(System-On-a-Chip, SoC)으로 구현될 수 있다. 하지만, 이에 한정되는 것은 아니며, 전자 장치(10)는 PC(Personal Computer), 태블릿 PC, 서버 등과 같은 컴퓨팅 장치에 포함될 수 있다. Referring to FIG. 1, an electronic device according to an embodiment of the present disclosure may be included in a mobile device such as a smart phone or a wearable device, and in this case, the electronic device (10) may be implemented as an application processor (AP) or a system-on-a-chip (SoC). However, the present invention is not limited thereto, and the electronic device (10) may be included in a computing device such as a personal computer (PC), a tablet PC, a server, etc.
전자 장치(10)는 프로세서(110), 메모리 장치(120), 및 전력 관리기(130)를 포함할 수 있다.The electronic device (10) may include a processor (110), a memory device (120), and a power manager (130).
프로세서(110)는 CPU(Central Processing Unit), NPU(Neural Processing Unit), GPU(Graphics Processing Unit), 어플리케이션 프로세서(Application Processor, AP) 등과 같이 데이터를 처리할 수 있는 장치일 수 있다. 프로세서(110)는 운영 체제(operating system, OS) 및/또는 다양한 응용 프로그램(application)을 수행할 수 있다. 프로세서(110)는 특정 동작을 수행할 것을 요청하는 트랜잭션을 메모리 장치(120)에 전송할 수 있다. 그리고, 프로세서(110)는 트랜잭션에 대한 응답을 메모리 장치(120)로부터 수신할 수 있다. 예를 들면, 프로세서(110)는 리드 요청 및 어드레스를 포함하는 트랜잭션을 메모리 장치(120)에 전송하고, 메모리 장치(120)는 어드레스에 대응되는 메모리 영역에 저장된 데이터를 리드(read)할 수 있다. 하지만, 이에 한정되는 것은 아니다.The processor (110) may be a device capable of processing data, such as a CPU (Central Processing Unit), an NPU (Neural Processing Unit), a GPU (Graphics Processing Unit), an application processor (AP), etc. The processor (110) may execute an operating system (OS) and/or various applications. The processor (110) may transmit a transaction requesting to perform a specific operation to the memory device (120). In addition, the processor (110) may receive a response to the transaction from the memory device (120). For example, the processor (110) may transmit a transaction including a read request and an address to the memory device (120), and the memory device (120) may read data stored in a memory area corresponding to the address. However, the present invention is not limited thereto.
메모리 장치(120)는, 전력 관리기(130)로부터 전력을 공급받아 동작을 수행할 수 있다. 메모리 장치(120)는 메모리로 지칭될 수 있다. 메모리 장치(120)는, 캐시 컨트롤러(121), 웨이 선택기(122), 및 복수의 뱅크들(123_1, 123_2, ..., 123_n)을 포함할 수 있다. 캐시 컨트롤러(121)는 프로세서(110)로부터 제공된 트랜잭션을 수신할 수 있다. 캐시 컨트롤러(121)는, 트랜잭션에 포함된 어드레스에 대응되는 뱅크에 액세스하도록, 트랜잭션을 해당 뱅크에 전달할 수 있다. 일 실시예에서, 캐시 컨트롤러(121)는, 트랜잭션 및 전력 제어 신호를 기초로, 복수의 뱅크들(123_1, 123_2, ..., 123_n) 중 제1 뱅크 그룹 또는 제2 뱅크 그룹을 선택할 수 있다. 제1 뱅크 그룹은, 복수의 뱅크들(123_1, 123_2, ..., 123_n) 중 적어도 하나의 뱅크를 포함할 수 있다. 제2 뱅크 그룹은 복수의 뱅크들(123_1, 123_2, ..., 123_n) 중 제1 뱅크 그룹을 제외한 나머지 뱅크를 포함할 수 있다. 일부 실시예들에서, 제1 뱅크 그룹은 전자 장치(10)가 켜진 상태에서 전력의 공급이 중단 가능한 적어도 하나의 뱅크를 포함할 수 있고, 제2 뱅크 그룹은 전자 장치(10)가 켜진 상태에서 전력이 항상 공급되도록 설계된 적어도 하나의 뱅크를 포함할 수 있다. 전력 제어 신호는 전력 관리기(130)에 의해 생성될 수 있다. 웨이 선택기(122)는 트랜잭션을 선택된 뱅크 그룹에 전달할 수 있다. 일 실시예에서, 웨이 선택기(122)는, 캐시 컨트롤러(121)에 의해 전달된 트랜잭션 및 전력 제어 신호를 기초로, 선택된 적어도 하나의 뱅크에 포함된 복수의 웨이들 중 적어도 하나의 웨이에 트랜잭션을 전달할 수 있다. 복수의 뱅크들(123_1, 123_2, ..., 123_n)의 개수는 n개일 수 있다. n은 2 이상의 정수일 수 있다. 복수의 뱅크들(123_1, 123_2, ..., 123_n) 각각은 전력 관리기(130)에 의해 생성된 전력을 공급받아, 독립적으로 동작할 수 있다. 뱅크는 슬라이스로 지칭될 수도 있다.The memory device (120) may receive power from the power manager (130) to perform an operation. The memory device (120) may be referred to as a memory. The memory device (120) may include a cache controller (121), a way selector (122), and a plurality of banks (123_1, 123_2, ..., 123_n). The cache controller (121) may receive a transaction provided from the processor (110). The cache controller (121) may transfer the transaction to a bank corresponding to an address included in the transaction so as to access the bank. In one embodiment, the cache controller (121) may select a first bank group or a second bank group among the plurality of banks (123_1, 123_2, ..., 123_n) based on the transaction and the power control signal. The first bank group may include at least one bank among the plurality of banks (123_1, 123_2, ..., 123_n). The second bank group may include the remaining banks among the plurality of banks (123_1, 123_2, ..., 123_n) except for the first bank group. In some embodiments, the first bank group may include at least one bank whose power supply can be interrupted while the electronic device (10) is turned on, and the second bank group may include at least one bank designed to always be supplied with power while the electronic device (10) is turned on. The power control signal may be generated by the power manager (130). The way selector (122) may transmit the transaction to the selected bank group. In one embodiment, the way selector (122) may transmit the transaction to at least one way among the plurality of ways included in the selected at least one bank based on the transaction and the power control signal transmitted by the cache controller (121). The number of multiple banks (123_1, 123_2, ..., 123_n) may be n. n may be an integer greater than or equal to 2. Each of the multiple banks (123_1, 123_2, ..., 123_n) may be supplied with power generated by the power manager (130) and may operate independently. A bank may also be referred to as a slice.
일 실시예에서, 메모리 장치(120)는 SRAM으로 구현될 수 있다. SRAM은 컴퓨팅 장치에서 캐시(Cache)로 이용될 수 있다. 캐시의 단위 시간당 데이터 처리량을 나타내는 쓰루풋(throughput)을 개선하기 위해, 독립적으로 동작 가능한 뱅크 구조가 SRAM에 적용될 수 있다. 뱅크 구조는 각 파티션(partition)이 동시에 액세스(access)되도록 캐시를 복수 개로 파티셔닝(partitioning)한 구조이다. 뱅크 구조의 SRAM에서 비교적 낮은 성능이 요구되는 경우, 전력 절약(power saving)을 위해 일부 뱅크의 전원이 꺼질 수 있다. 한편, 뱅크 구조의 SRAM에서 높은 성능이 요구되는 경우, 전원이 꺼진 뱅크에 전원이 공급될 수 있다. 파워 모드가 트랜지션되는 경우, 파워 오프된 뱅크에 맵핑된 캐시 라인들이 파워 온된 뱅크로 리다이랙트(redirect)되어야 하며, 정상 동작을 보장하기 위해 캐시 플러쉬가 동반될 수 있다. 동작할 뱅크의 개수가 줄어들 경우에는 파워 오프되는 뱅크의 캐시 라인들이 모두 플러쉬되어야 하며, 동작할 뱅크의 개수가 늘어나는 경우에는 파워 온되어 있던 뱅크의 캐시 라인들 중 새로이 파워 온되는 뱅크로 맵핑되어야 하는 캐시 라인들이 플러쉬되어야 한다.In one embodiment, the memory device (120) may be implemented as an SRAM. The SRAM may be used as a cache in a computing device. In order to improve the throughput, which indicates the amount of data processed per unit time of the cache, an independently operable bank structure may be applied to the SRAM. The bank structure is a structure in which the cache is partitioned into multiple partitions so that each partition can be accessed simultaneously. When relatively low performance is required in the SRAM of the bank structure, some banks may be powered off for power saving. Meanwhile, when high performance is required in the SRAM of the bank structure, power may be supplied to the powered-off banks. When the power mode is transitioned, cache lines mapped to the powered-off banks must be redirected to the powered-on banks, and cache flushing may be performed to ensure normal operation. When the number of banks to be operated decreases, all cache lines of the banks being powered off must be flushed, and when the number of banks to be operated increases, cache lines of the banks that were powered on and that must be mapped to the newly powered-on banks must be flushed.
전력 관리기(130)는 전력을 생성할 수 있다. 전력 관리기(130)에 의해 생성된 전력은 프로세서(110) 및/또는 메모리 장치(120)에 공급될 수 있다. 일 실시예에서, 전력 관리기(130)에 의해 생성된 전력은 복수의 뱅크들(123_1, 123_2, ..., 123_n) 중 적어도 하나의 뱅크에 공급될 수 있다. 전력 관리기(130)는, 복수의 뱅크들(123_1, 123_2, ..., 123_n) 중 제1 뱅크 그룹에 전력의 공급 여부를 지시하는 전력 제어 신호를 출력할 수 있다. 일 실시예에서, 전력 관리기(130)는, 적어도 하나의 뱅크에 공급될 전력의 공급 여부(예, 턴 오프 또는 턴 온)를 지시하는 전력 제어 신호를 출력할 수 있다. 다른 실시예에서, 전력 관리기(130)는, 복수의 뱅크들(123_1, 123_2, ..., 123_n) 중 한 개의 특정 뱅크(예, 제1 뱅크(123_1)에만 전력을 공급하는 제1 모드, 복수의 뱅크들(123_1, 123_2, ..., 123_n) 중 미리 설정된 개수(예, n/2)의 뱅크들에 전력을 공급하는 제2 모드, 또는 복수의 뱅크들(123_1, 123_2, ..., 123_n)에 전력을 공급하는 제3 모드를 지시하는 전력 제어 신호를 출력할 수 있다. 실시예에 따라, 전력 관리기(130)는 PMU(Power Management Unit)로 구현될 수 있다.The power manager (130) can generate power. The power generated by the power manager (130) can be supplied to the processor (110) and/or the memory device (120). In one embodiment, the power generated by the power manager (130) can be supplied to at least one bank among the plurality of banks (123_1, 123_2, ..., 123_n). The power manager (130) can output a power control signal that instructs whether to supply power to a first bank group among the plurality of banks (123_1, 123_2, ..., 123_n). In one embodiment, the power manager (130) can output a power control signal that instructs whether to supply power (e.g., turn off or turn on) to be supplied to at least one bank. In another embodiment, the power manager (130) may output a power control signal that indicates a first mode for supplying power only to one specific bank (e.g., the first bank (123_1)) among the plurality of banks (123_1, 123_2, ..., 123_n), a second mode for supplying power to a preset number (e.g., n/2) of banks among the plurality of banks (123_1, 123_2, ..., 123_n), or a third mode for supplying power to the plurality of banks (123_1, 123_2, ..., 123_n). According to an embodiment, the power manager (130) may be implemented as a Power Management Unit (PMU).
본 개시의 메모리 장치(120)는 동적 캐시 사이즈 적응(Dynamic cache size adaptation)을 통해 파워-퍼포먼스 밸런스(power-performance balance)를 제어하는 시스템에서 성능 저하를 개선하면서 전력의 소모를 줄일 수 있다. 본 개시의 메모리 장치(120)는, CPU의 L1 캐시 또는 L2 캐시로 구현될 수 있고, CPU 클러스터(cluster)의 L3 캐시로도 구현될 수 있다. 또는, 본 개시의 메모리 장치(120)는 GPU나 NPU에 내장된 캐시 및 버스 인터커넥트(bus interconnect)에 존재하는 LLC(Last Level Cache)에 활용 될 수 있다.The memory device (120) of the present disclosure can reduce power consumption while improving performance degradation in a system that controls power-performance balance through dynamic cache size adaptation. The memory device (120) of the present disclosure can be implemented as an L1 cache or an L2 cache of a CPU, and can also be implemented as an L3 cache of a CPU cluster. Alternatively, the memory device (120) of the present disclosure can be utilized in a cache built into a GPU or an NPU and an LLC (Last Level Cache) existing in a bus interconnect.
전술한 실시예에 의하면, 뱅크의 전원을 키거나 끄는 모드를 변경하는 속도를 개선하는 효과, 소비 전력을 개선하는 효과, 응답 시간을 개선하는 효과가 있다.According to the above-described embodiment, there is an effect of improving the speed of changing the mode of turning the bank on or off, an effect of improving power consumption, and an effect of improving the response time.
도 2a, 도 2b, 및 도 2c는 전력 제어 신호에 따라 해시 함수를 선택하는 예시적인 실시예들을 설명하기 위한 도면들이다.FIGS. 2A, 2B, and 2C are diagrams illustrating exemplary embodiments of selecting a hash function according to a power control signal.
도 2a, 도 2b, 및 도 2c를 참조하면, 메모리(200)는 도 1의 메모리 장치(120)에 대응될 수 있다. 메모리(200)에 포함된 캐시 컨트롤러(210)는, 복수의 해시 함수들 중 전력 제어 신호에 따라 어느 하나의 해시 함수를 선택할 수 있다. 캐시 컨트롤러(210)는, 선택된 해시 함수에 어드레스를 입력하고, 선택된 해시 함수의 출력으로서 타겟을 생성 및 출력할 수 있다. 일 실시예에서, 각 어드레스 그룹에 포함된 어드레스는 캐시 내의 블록이 프로세서(110)가 요청한 것인지 아닌지를 식별하는 데 필요한 정보를 포함하며, 어드레스의 상위 부분 비트들로 구성되는 태그 필드, 및 복수의 웨이들을 중 특정 웨이를 지시하는 인덱스 값을 포함하는 인덱스 필드를 포함할 수 있다. 어드레스는 오프셋 값을 포함하는 오프셋 필드를 더 포함할 수 있다. 이때, 태그 필드 및 인덱스 필드가 해시 함수에 입력될 수 있다. 메모리(200)는, 복수의 뱅크들을 포함할 수 있으며, 예를 들어 메모리(200)는 제1 내지 제3 뱅크(230_1, 230_2, 230_3)를 포함할 수 있고, 캐시 컨트롤러(210)는 제1 내지 제3 해시 함수(211, 212, 213)을 포함할 수 있다. 하지만, 이에 한정되는 것은 아니다.Referring to FIGS. 2A, 2B, and 2C, the memory (200) may correspond to the memory device (120) of FIG. 1. The cache controller (210) included in the memory (200) may select one hash function among a plurality of hash functions according to a power control signal. The cache controller (210) may input an address to the selected hash function, and generate and output a target as an output of the selected hash function. In one embodiment, the address included in each address group includes information necessary to identify whether a block in the cache is requested by the processor (110) or not, and may include a tag field composed of upper part bits of the address, and an index field including an index value indicating a specific way among a plurality of ways. The address may further include an offset field including an offset value. At this time, the tag field and the index field may be input to the hash function. The memory (200) may include a plurality of banks, for example, the memory (200) may include first to third banks (230_1, 230_2, 230_3), and the cache controller (210) may include first to third hash functions (211, 212, 213). However, the present invention is not limited thereto.
일 실시예에서, 전력 제어 신호는, 복수의 뱅크들 중 적어도 하나의 뱅크에 전력을 공급할 것을 지시할 수 있다. 도 2a, 도 2b, 및 도 2c를 참조하여 예를 들면, 전력 제어 신호는, 제1 내지 제3 뱅크(230_1, 230_2, 230_3) 중 어느 하나의 뱅크에만 전력을 공급할 것을 지시할 수 있다. 다른 예를 들면, 전력 제어 신호는, 제1 내지 제3 뱅크(230_1, 230_2, 230_3) 중 두 개의 뱅크들에만 전력을 공급할 것을 지시할 수 있다. 또 다른 예를 들면, 전력 제어 신호는, 제1 내지 제3 뱅크(230_1, 230_2, 230_3) 모두 전력을 공급할 것을 지시할 수 있다. 하지만, 이에 한정되는 것은 아니다. 다른 실시예에서의 전력 제어 신호는 3 개의 뱅크들 중 한 개 또는 두 개의 뱅크에 전력의 공급을 중단할 것을 지시할 수도 있다. 이하에서는, 전력 제어 신호가 적어도 하나의 뱅크에 전력을 공급할 것을 지시하는 것으로 가정한다. 일 실시예에서, 본 개시의 제1 뱅크 그룹은, 제1 및 제2 뱅크(230_1, 230_2)를 포함할 수 있고, 본 개시의 제2 뱅크 그룹은 제3 뱅크(230_3)를 포함할 수 있다.In one embodiment, the power control signal may instruct to supply power to at least one of the plurality of banks. For example, referring to FIGS. 2A, 2B, and 2C, the power control signal may instruct to supply power to only one of the first to third banks (230_1, 230_2, 230_3). As another example, the power control signal may instruct to supply power to only two of the first to third banks (230_1, 230_2, 230_3). As yet another example, the power control signal may instruct to supply power to all of the first to third banks (230_1, 230_2, 230_3). However, the present invention is not limited thereto. In another embodiment, the power control signal may also instruct to stop supplying power to one or two of the three banks. Hereinafter, it is assumed that the power control signal instructs at least one bank to supply power. In one embodiment, the first bank group of the present disclosure may include the first and second banks (230_1, 230_2), and the second bank group of the present disclosure may include the third bank (230_3).
도 2a를 참조하면, 제1 전력 제어 신호(PCS1)가 메모리(200)에 입력될 수 있다. 제1 전력 제어 신호(PCS1)는, 제1 내지 제3 뱅크(230_1, 230_2, 230_3) 모두에 전력을 공급할 것을 지시할 수 있다. 캐시 컨트롤러(210)는 제1 전력 제어 신호(PCS1)에 응답하여 제1 해시 함수(211)를 선택할 수 있다. 캐시 컨트롤러(210)는 제1 어드레스 그룹(ADDa)을 제1 해시 함수(211)에 입력하고, 제1 뱅크(230_1)를 가리키는(또는 제1 뱅크(230_1)를 나타내는) 제1 타겟(TGT1)을 출력할 수 있다. 제1 어드레스 그룹(ADDa)은 복수의 제1 어드레스들(ADDa1, ADDa2, ADDa3, ADDa4)을 포함할 수 있다. 복수의 제1 어드레스들(ADDa1, ADDa2, ADDa3) 각각이 제1 뱅크(230_1)에 포함된 적어도 하나의 웨이에 대응될 수 있다. 복수의 제1 어드레스들(ADDa1, ADDa2, ADDa3, ADDa4)의 개수가 4개인 것으로 도시되어 있으나, 이는 예시일 뿐이다. 캐시 컨트롤러(210)는 제2 어드레스 그룹(ADDb)을 제1 해시 함수(211)에 입력하고, 제2 뱅크(230_2)를 가리키는 제2 타겟(TGT2)을 출력할 수 있다. 제2 어드레스 그룹(ADDb)은 복수의 제2 어드레스들(ADDb1, ADDb2, ADDb3, ADDb4)을 포함할 수 있다. 복수의 제2 어드레스들(ADDb1, ADDb2, ADDb3, ADDb4) 각각이 제2 뱅크(230_2)에 포함된 적어도 하나의 웨이에 대응될 수 있다. 캐시 컨트롤러(210)는 제3 어드레스 그룹(ADDc)을 제1 해시 함수(211)에 입력하고, 제3 뱅크(230_3)를 가리키는 제3 타겟(TGT3)을 출력할 수 있다. 제3 어드레스 그룹(ADDc)은 복수의 제3 어드레스들(ADDc1, ADDc2, ADDc3, ADDc4)을 포함할 수 있다. 복수의 제3 어드레스들(ADDc1, ADDc2, ADDc3, ADDc4) 각각이 제3 뱅크(230_3)에 포함된 적어도 하나의 웨이에 대응될 수 있다. 이와 같이, 모든 뱅크들에 전력이 공급되는 경우, 특정 어드레스 그룹은 특정 뱅크에만 맵핑될 수 있다.Referring to FIG. 2a, a first power control signal (PCS1) may be input to the memory (200). The first power control signal (PCS1) may instruct to supply power to all of the first to third banks (230_1, 230_2, 230_3). The cache controller (210) may select a first hash function (211) in response to the first power control signal (PCS1). The cache controller (210) may input a first address group (ADDa) to the first hash function (211) and output a first target (TGT1) pointing to the first bank (230_1) (or representing the first bank (230_1)). The first address group (ADDa) may include a plurality of first addresses (ADDa1, ADDa2, ADDa3, ADDa4). Each of the plurality of first addresses (ADDa1, ADDa2, ADDa3) may correspond to at least one way included in the first bank (230_1). Although the number of the plurality of first addresses (ADDa1, ADDa2, ADDa3, ADDa4) is illustrated as four, this is only an example. The cache controller (210) may input the second address group (ADDb) to the first hash function (211) and output a second target (TGT2) pointing to the second bank (230_2). The second address group (ADDb) may include a plurality of second addresses (ADDb1, ADDb2, ADDb3, ADDb4). Each of the plurality of second addresses (ADDb1, ADDb2, ADDb3, ADDb4) may correspond to at least one way included in the second bank (230_2). The cache controller (210) can input a third address group (ADDc) to the first hash function (211) and output a third target (TGT3) pointing to the third bank (230_3). The third address group (ADDc) can include a plurality of third addresses (ADDc1, ADDc2, ADDc3, ADDc4). Each of the plurality of third addresses (ADDc1, ADDc2, ADDc3, ADDc4) can correspond to at least one way included in the third bank (230_3). In this way, when power is supplied to all banks, a specific address group can be mapped only to a specific bank.
도 2b를 참조하면, 제2 전력 제어 신호(PCS2)가 메모리(200)에 입력될 수 있다. 제2 전력 제어 신호(PCS2)는, 제1 내지 제3 뱅크(230_1, 230_2, 230_3) 중 2개의 뱅크, 예를 들어 제2 및 제3 뱅크(230_2, 230_3)에만 전력을 공급할 것을 지시할 수 있다. 제1 뱅크(230_1)에 전력의 공급이 중단되므로, 제1 어드레스 그룹(ADDa)은 제1 뱅크(230_1)를 제외한 다른 제2 뱅크(230_2) 또는 제3 뱅크(230_2, 230_3)에 리맵핑될 필요가 있다. 예를 들어, 복수의 제1 어드레스들(ADDa1, ADDa2, ADDa3, ADDa4) 중 일부 제1 어드레스들(ADDa1, ADDa2)은 제2 뱅크(230_2)에 맵핑될 수 있고, 복수의 제1 어드레스들(ADDa1, ADDa2, ADDa3, ADDa4) 중 다른 일부 제1 어드레스들(ADDa3, ADDa4)은 제3 뱅크(230_3)에 맵핑될 수 있다. 일부 어드레스를 맵핑하는 실시예는 도 2b에 한정되지 않고 다양하게 설계될 수 있다. 캐시 컨트롤러(210)는 제2 전력 제어 신호(PCS2)에 응답하여 제2 해시 함수(212)를 선택할 수 있다. 제1 어드레스들(ADDa1, ADDa2)이 캐시 컨트롤러(210)에 입력되는 경우, 캐시 컨트롤러(210)는, 제2 해시 함수(212)를 이용하여, 제2 타겟(TGT2)을 출력할 수 있다. 다른 일부 제1 어드레스들(ADDa3, ADDa4)이 캐시 컨트롤러(210)에 입력되는 경우, 캐시 컨트롤러(210)는, 제2 해시 함수(212)를 이용하여, 제3 타겟(TGT3)을 출력할 수 있다. 제2 어드레스 그룹(ADDb) 및/또는 제3 어드레스 그룹(ADDc)이 캐시 컨트롤러(210)에 입력되는 경우는, 도 2a를 참조하여 전술한 바와 같다. Referring to FIG. 2b, a second power control signal (PCS2) may be input to the memory (200). The second power control signal (PCS2) may instruct to supply power only to two banks among the first to third banks (230_1, 230_2, 230_3), for example, the second and third banks (230_2, 230_3). Since the supply of power to the first bank (230_1) is cut off, the first address group (ADDa) needs to be remapped to another second bank (230_2) or third bank (230_2, 230_3) excluding the first bank (230_1). For example, some of the first addresses (ADDa1, ADDa2) among the plurality of first addresses (ADDa1, ADDa2, ADDa3, ADDa4) may be mapped to the second bank (230_2), and other of the first addresses (ADDa3, ADDa4) among the plurality of first addresses (ADDa1, ADDa2, ADDa3, ADDa4) may be mapped to the third bank (230_3). An embodiment of mapping some of the addresses is not limited to FIG. 2B and may be designed in various ways. The cache controller (210) may select the second hash function (212) in response to the second power control signal (PCS2). When the first addresses (ADDa1, ADDa2) are input to the cache controller (210), the cache controller (210) can output the second target (TGT2) using the second hash function (212). When some other first addresses (ADDa3, ADDa4) are input to the cache controller (210), the cache controller (210) can output the third target (TGT3) using the second hash function (212). When the second address group (ADDb) and/or the third address group (ADDc) are input to the cache controller (210), it is as described above with reference to FIG. 2a.
도 2c를 참조하면, 제3 전력 제어 신호(PCS3)가 메모리(200)에 입력될 수 있다. 제3 전력 제어 신호(PCS3)는, 제1 내지 제3 뱅크(230_1, 230_2, 230_3) 중 어느 하나의 뱅크, 예를 들어 제3 뱅크(230_3)에만 전력을 공급할 것을 지시할 수 있다. 제1 뱅크(230_1) 및 제2 뱅크(230_1)에 공급되는 전력이 중단되므로, 제1 어드레스 그룹(ADDa) 및 제2 어드레스 그룹(ADDb)은 제3 뱅크(230_2, 230_3)에 리맵핑될 필요가 있다. 이를 위해, 캐시 컨트롤러(210)는 제3 전력 제어 신호(PCS3)에 응답하여 제3 해시 함수(213)를 선택할 수 있다. 제1 어드레스 그룹(ADDa), 제2 어드레스 그룹(ADDb), 또는 제3 어드레스 그룹(ADDc)이 캐시 컨트롤러(210)에 입력되는 경우, 캐시 컨트롤러(210)는, 제3 해시 함수(213)를 이용하여, 제3 타겟(TGT3)을 출력할 수 있다. 이와 같이, 적어도 하나의 뱅크에 공급되는 전력이 중단되는 경우, 특정 어드레스 그룹은 기존에 맵핑된 뱅크와 다른 뱅크에 리맵핑될 수 있다.Referring to FIG. 2c, a third power control signal (PCS3) may be input to the memory (200). The third power control signal (PCS3) may instruct to supply power to only one of the first to third banks (230_1, 230_2, 230_3), for example, the third bank (230_3). Since the power supplied to the first bank (230_1) and the second bank (230_1) is cut off, the first address group (ADDa) and the second address group (ADDb) need to be remapped to the third bank (230_2, 230_3). To this end, the cache controller (210) may select the third hash function (213) in response to the third power control signal (PCS3). When the first address group (ADDa), the second address group (ADDb), or the third address group (ADDc) is input to the cache controller (210), the cache controller (210) can output the third target (TGT3) using the third hash function (213). In this way, when power supplied to at least one bank is cut off, a specific address group can be remapped to a bank different from the previously mapped bank.
도시되지 않았지만, 캐시 컨트롤러(210)는 타겟에 따라 어드레스(또는 어드레스를 포함하는 트랜잭션)을 뱅크에 전달하기 위한 중재기(arbitrator)를 더 포함할 수 있다.Although not shown, the cache controller (210) may further include an arbitrator for forwarding the address (or transaction including the address) to the bank, depending on the target.
도 3, 도 4, 및 도 5는 본 개시의 일부 실시예들에 따른 메모리의 동작을 설명하기 위한 도면들이다. 구체적으로, 도 3은 임의의 제1 어드레스(ADDai)를 포함하는 제1 트랜잭션(TXNa)을 제1 뱅크(230_1)에 전달하는 실시예를 설명하기 위한 도면이고, 도 4 및 도 5는 임의의 제2 어드레스(ADDb)를 포함하는 제2 트랜잭션(TXNb)을 제2 뱅크(230_2)에 전달하는 실시예를 설명하기 위한 도면들이다.FIGS. 3, 4, and 5 are diagrams for explaining the operation of a memory according to some embodiments of the present disclosure. Specifically, FIG. 3 is a diagram for explaining an embodiment of transmitting a first transaction (TXNa) including an arbitrary first address (ADDai) to a first bank (230_1), and FIGS. 4 and 5 are diagrams for explaining an embodiment of transmitting a second transaction (TXNb) including an arbitrary second address (ADDb) to a second bank (230_2).
도 3, 도 4, 및 도 5를 참조하면, 메모리(200)는 캐시 컨트롤러(210), 웨이 선택기(220), 제1 뱅크(230_1) 및 제2 뱅크(230_2)를 포함할 수 있다. 도 3, 도 4, 및 도 5에서 메모리(200)가 2개의 뱅크를 포함하는 것으로 도시되어 있으나, 이는 본 개시의 예시적인 실시예들을 예시적으로 설명하기 위한 것일 뿐이다. 일 실시예에서, 제1 뱅크(230_1)는 전력의 공급이 중단 가능한 뱅크로서 제1 뱅크 그룹에 포함될 수 있고, 제2 뱅크(230_2)는 메모리(200)가 켜진 상태에서 전력이 항상 공급되도록 설계된 적어도 하나의 뱅크로서 제2 뱅크 그룹에 포함될 수 있다. 제1 뱅크(230_1) 및 제2 뱅크(230_2) 각각은, 전력(PWR)을 공급받아 독립적으로 동작할 수 있다. 각 뱅크는 복수의 웨이들을 포함할 수 있다. 예를 들면, 제1 뱅크(230_1) 및 제2 뱅크(230_2) 각각은, 제1 내지 제4 웨이들(WAY1, WAY2, WAY3, WAY4)를 포함할 수 있다. 도 3, 도 4, 및 도 5에서 제1 뱅크(230_1) 및 제2 뱅크(230_2) 각각이 4개의 웨이들을 포함하는 것으로 도시되어 있으나, 이에 한정되는 것은 아니다. 제1 내지 제4 웨이들(WAY1, WAY2, WAY3, WAY4) 각각은, 적어도 하나의 캐시 라인을 포함할 수 있다. 각 캐시 라인에는 태그 및 데이터가 저장될 수 있다. 예를 들면, 제1 뱅크(230_1)에 포함된 제1 내지 제4 웨이들(WAY1, WAY2, WAY3, WAY4) 각각의 캐시 라인에, 제1 어드레스 그룹(ADDa)에 대한 태그들(TAG_a1, TAG_a2, TAG_a3, TAG_a4), 및 데이터(DATA_a1, DATA_a2, DATA_a3, DATA_a4)가 저장될 수 있다. 제1 어드레스 그룹(ADDa)은 예를 들어 4개의 제1 어드레스들(ADDa1, ADDa2, ADDa3, ADDa4)을 포함할 수 있다. 이때, 태그(TAG_a1)는 제1 어드레스(ADDa1)를 가리킬 수 있고, 태그(TAG_a2)는 제1 어드레스(ADDa2)를 가리킬 수 있고, 태그(TAG_a3)는 제1 어드레스(ADDa3)를 가리킬 수 있으며, 태그(TAG_a4)는 제1 어드레스(ADDa4)를 가리킬 수 있다. 예를 들면, 제2 뱅크(230_2)에 포함된 제1 내지 제4 웨이들(WAY1, WAY2, WAY3, WAY4) 각각에서, 제2 어드레스 그룹(ADDb)에 대한 태그들(TAG_b1, TAG_b2, TAG_b3, TAG_b4), 및 데이터(DATA_b1, DATA_b2, DATA_b3, DATA_b4)가 저장될 수 있다. 태그들(TAG_b1, TAG_b2, TAG_b3, TAG_b4)은, 각각 제2 어드레스 그룹(ADDb)에 포함된 제2 어드레스들(ADDb1, ADDb2, ADDb3, ADDb4)를 가리킬 수 있다. 제1 전력 제어 신호(PCS1)가 캐시 컨트롤러(210) 및 웨이 선택기(220)에 입력될 수 있다. 제1 전력 제어 신호(PCS1)는 제1 및 제2 뱅크(230_1, 230_2)에 전력을 공급할 것을 지시할 수 있다. 캐시 컨트롤러(210)는 제1 해시 함수(211)를 선택할 수 있다.Referring to FIGS. 3, 4, and 5, the memory (200) may include a cache controller (210), a way selector (220), a first bank (230_1), and a second bank (230_2). Although the memory (200) is illustrated as including two banks in FIGS. 3, 4, and 5, this is merely for the purpose of illustratively explaining exemplary embodiments of the present disclosure. In one embodiment, the first bank (230_1) may be included in a first bank group as a bank whose power supply may be interrupted, and the second bank (230_2) may be included in a second bank group as at least one bank designed to always be supplied with power while the memory (200) is turned on. Each of the first bank (230_1) and the second bank (230_2) may be supplied with power (PWR) and operate independently. Each bank may include a plurality of ways. For example, each of the first bank (230_1) and the second bank (230_2) may include first to fourth ways (WAY1, WAY2, WAY3, WAY4). Although each of the first bank (230_1) and the second bank (230_2) is illustrated as including four ways in FIGS. 3, 4, and 5, the present invention is not limited thereto. Each of the first to fourth ways (WAY1, WAY2, WAY3, WAY4) may include at least one cache line. Each cache line may store a tag and data. For example, tags (TAG_a1, TAG_a2, TAG_a3, TAG_a4) and data (DATA_a1, DATA_a2, DATA_a3, DATA_a4) for the first address group (ADDa) may be stored in each cache line of the first to fourth ways (WAY1, WAY2, WAY3, WAY4) included in the first bank (230_1). The first address group (ADDa) may include, for example, four first addresses (ADDa1, ADDa2, ADDa3, ADDa4). At this time, the tag (TAG_a1) can point to the first address (ADDa1), the tag (TAG_a2) can point to the first address (ADDa2), the tag (TAG_a3) can point to the first address (ADDa3), and the tag (TAG_a4) can point to the first address (ADDa4). For example, in each of the first to fourth ways (WAY1, WAY2, WAY3, WAY4) included in the second bank (230_2), tags (TAG_b1, TAG_b2, TAG_b3, TAG_b4) and data (DATA_b1, DATA_b2, DATA_b3, DATA_b4) for the second address group (ADDb) can be stored. The tags (TAG_b1, TAG_b2, TAG_b3, TAG_b4) may point to second addresses (ADDb1, ADDb2, ADDb3, ADDb4) included in the second address group (ADDb), respectively. A first power control signal (PCS1) may be input to the cache controller (210) and the way selector (220). The first power control signal (PCS1) may instruct to supply power to the first and second banks (230_1, 230_2). The cache controller (210) may select a first hash function (211).
도 3을 참조하면, 제1 트랜잭션(TXNa)에 포함된 임의의 제1 어드레스(ADDai)는 제1 뱅크(230_1)에 맵핑될 수 있다. 즉, 제1 트랜잭션(TXNa)은 제1 뱅크(230_1)에 전달될 수 있다. 예를 들면, 메모리(200)의 외부, 예를 들어 도 1의 프로세서(110)가 임의의 제1 어드레스(ADDai)를 포함하는 제1 트랜잭션(TXNa)을 메모리(200)에 출력할 수 있다. 캐시 컨트롤러(210)는, 임의의 제1 어드레스(ADDai) 및 제1 해시 함수(211)를 기초로, 제1 뱅크(230_1)를 지시하는 제1 타겟(TGT1)을 생성할 수 있다. 그리고, 캐시 컨트롤러(120)는 제1 타겟(TGT1) 및 제1 트랜잭션(TXNa)을 출력할 수 있다. 일 실시예에서, 제1 타겟(TGT1) 및 제1 트랜잭션(TXNa)은 웨이 선택기(220)에 전달될 수 있다. 웨이 선택기(220)는, 제1 전력 제어 신호(PCS1), 제1 타겟(TGT1) 및 임의의 제1 어드레스(ADDai)를 기초로, 제1 웨이 정보(WI1)를 생성할 수 있다. 웨이 정보는, 뱅크에 포함된 복수의 웨이들 중 맵핑될 웨이를 포함할 수 있다. 예를 들면, 제1 웨이 정보(WI1)는, 제1 뱅크(230_1)에 포함된 제1 내지 제4 웨이들(WAY1, WAY2, WAY3, WAY4) 중 어느 하나의 웨이를 가리킬 수 있다. 일 실시예에서, 제1 웨이 정보(WI1)는 웨이 필드를 포함할 수 있다. 웨이 필드는, 뱅크에 포함된 복수의 웨이들 중 마스킹할 웨이와 언마스킹할 웨이를 가리키는 정보를 포함할 수 있다. 언마스킹된 웨이가 액세스되며, 마스킹된 웨이는 엑세스되지 않는다. 웨이 필드는 도 8 내지 도 13을 참조하여 후술한다. 웨이 선택기(220)는 제1 웨이 정보(WI1) 및 제1 트랜잭션(TXNa)을 제1 뱅크(230_1)에 출력할 수 있다. 제1 뱅크(230_1)는 임의의 제1 어드레스(ADDai)에 맵핑되는(또는 대응되는) 특정 웨이에서 제1 트랜잭션(TXNa)의 요청에 따른 동작을 수행할 수 있다. 예를 들면, 제1 트랜잭션(TXNa)이 리드 요청 및 제1 어드레스(ADDa1)를 포함하는 경우, 제1 뱅크(230_1)는 제1 웨이(WAY1)에 저장된 캐시 라인의 태그(TAG_a1)를 기초로, 캐시 히트 또는 캐시 미스 여부를 판단하고, 캐시 히트가 발생하면 데이터(DATA_a1)를 리드 및 출력할 수 있다. Referring to FIG. 3, any first address (ADDai) included in the first transaction (TXNa) may be mapped to the first bank (230_1). That is, the first transaction (TXNa) may be transmitted to the first bank (230_1). For example, an external device, such as the processor (110) of FIG. 1, of the memory (200) may output the first transaction (TXNa) including the arbitrary first address (ADDai) to the memory (200). The cache controller (210) may generate a first target (TGT1) indicating the first bank (230_1) based on the arbitrary first address (ADDai) and the first hash function (211). Then, the cache controller (120) may output the first target (TGT1) and the first transaction (TXNa). In one embodiment, the first target (TGT1) and the first transaction (TXNa) may be transmitted to the way selector (220). The way selector (220) may generate first way information (WI1) based on the first power control signal (PCS1), the first target (TGT1), and an arbitrary first address (ADDai). The way information may include a way to be mapped among a plurality of ways included in a bank. For example, the first way information (WI1) may indicate any one way among the first to fourth ways (WAY1, WAY2, WAY3, WAY4) included in the first bank (230_1). In one embodiment, the first way information (WI1) may include a way field. The way field may include information indicating a way to be masked and a way to be unmasked among a plurality of ways included in the bank. An unmasked way is accessed, and a masked way is not accessed. The way field will be described later with reference to FIGS. 8 to 13. The way selector (220) can output the first way information (WI1) and the first transaction (TXNa) to the first bank (230_1). The first bank (230_1) can perform an operation according to the request of the first transaction (TXNa) in a specific way mapped to (or corresponding to) any first address (ADDai). For example, when the first transaction (TXNa) includes a read request and the first address (ADDa1), the first bank (230_1) can determine whether there is a cache hit or a cache miss based on the tag (TAG_a1) of the cache line stored in the first way (WAY1), and if a cache hit occurs, can read and output data (DATA_a1).
도 4를 참조하면, 제2 트랜잭션(TXNb)에 포함된 임의의 제2 어드레스(ADDbi)는 제2 뱅크(230_2)에 맵핑될 수 있다. 즉, 제2 트랜잭션(TXNb)은 제2 뱅크(230_2)에 전달될 수 있다. 예를 들면, 캐시 컨트롤러(210)는, 임의의 제2 어드레스(ADDbi) 및 제1 해시 함수(211)를 기초로, 제2 뱅크(230_2)를 지시하는 제2 타겟(TGT2), 및 제2 트랜잭션(TXNb)을 출력할 수 있다. 일 실시예에서, 제2 타겟(TGT2) 및 제2 트랜잭션(TXNb)은 웨이 선택기(220)에 전달될 수 있다. 웨이 선택기(220)는, 제1 전력 제어 신호(PCS1), 제2 타겟(TGT2) 및 임의의 제2 어드레스(ADDbi)를 기초로, 제2 웨이 정보(WI2)를 생성할 수 있다. 예를 들면, 제2 웨이 정보(WI2)는, 제2 뱅크(230_2)에 포함된 제1 내지 제4 웨이들(WAY1, WAY2, WAY3, WAY4) 중 어느 하나의 웨이를 가리킬 수 있다. 일 실시예에서, 제2 웨이 정보(WI2)는 웨이 필드를 포함할 수 있다.Referring to FIG. 4, any second address (ADDbi) included in the second transaction (TXNb) may be mapped to the second bank (230_2). That is, the second transaction (TXNb) may be transmitted to the second bank (230_2). For example, the cache controller (210) may output a second target (TGT2) and a second transaction (TXNb) indicating the second bank (230_2) based on the arbitrary second address (ADDbi) and the first hash function (211). In one embodiment, the second target (TGT2) and the second transaction (TXNb) may be transmitted to the way selector (220). The way selector (220) may generate second way information (WI2) based on the first power control signal (PCS1), the second target (TGT2), and the arbitrary second address (ADDbi). For example, the second way information (WI2) may point to any one of the first to fourth ways (WAY1, WAY2, WAY3, WAY4) included in the second bank (230_2). In one embodiment, the second way information (WI2) may include a way field.
일 실시예에서, 웨이 선택기(220)는 제1 뱅크(230_1) 및 제2 뱅크(230_2) 각각에 포함될 수 있다. 하지만, 이에 한정되는 것은 아니다. 다른 실시예에서, 웨이 선택기(220)는 전력이 항상 공급되도록 설계된 뱅크에만 포함될 수 있다. 도 5를 참조하여 예를 들면, 제2 뱅크(230_2)는 메모리(200)가 켜진 상태에서 전력을 항상 공급받도록 설계된 경우, 웨이 선택기(220)는 제2 뱅크(230_2)에 포함될 수 있다. 임의의 제2 어드레스(ADDbi)를 포함하는 제2 트랜잭션(TXNb)이 제2 뱅크(230_2)에 전달될 수 있다. 이때, 웨이 선택기(220)는, 제2 타겟(TGT2)을 기초로 제2 뱅크(230_2)에 액세스하도록, 제2 트랜잭션(TXNb)을 제2 뱅크(230_2)에 전달할 수 있다.In one embodiment, the way selector (220) may be included in each of the first bank (230_1) and the second bank (230_2). However, the present invention is not limited thereto. In another embodiment, the way selector (220) may be included only in a bank that is designed to be always powered. For example, referring to FIG. 5, if the second bank (230_2) is designed to always be powered while the memory (200) is turned on, the way selector (220) may be included in the second bank (230_2). A second transaction (TXNb) including an arbitrary second address (ADDbi) may be transmitted to the second bank (230_2). At this time, the way selector (220) may transmit the second transaction (TXNb) to the second bank (230_2) so as to access the second bank (230_2) based on the second target (TGT2).
도 6은 본 개시의 일 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도이다.FIG. 6 is a flowchart illustrating the operation of an electronic device according to one embodiment of the present disclosure.
도 1 및 도 5를 참조하면, 단계 S110에서, 메모리 장치(120)가 적어도 하나의 뱅크의 전원을 끄기 위한 요청을 수신한다. 이때, 요청은 전술한 전력 제어 신호에 대응될 수 있다. 예를 들면, 전력 관리기(130)는, 제1 뱅크 그룹에 전력의 공급을 중단할 것을 지시하는 전력 제어 신호를 출력할 수 있다. Referring to FIGS. 1 and 5, in step S110, the memory device (120) receives a request to turn off power to at least one bank. At this time, the request may correspond to the power control signal described above. For example, the power manager (130) may output a power control signal instructing to stop supplying power to the first bank group.
단계 S120에서, 메모리 장치(120)는 전원이 꺼질 적어도 하나의 뱅크를 플러쉬한다. 예를 들면, 캐시 컨트롤러(121)는, 전력 제어 신호에 응답하여, 제1 뱅크 그룹을 플러쉬하도록 제1 뱅크 그룹을 제어할 수 있으며, 제1 뱅크 그룹에 포함된 캐시 라인들이 플러쉬될 수 있다. 플러쉬는 뱅크에 저장된 캐시 라인의 태그를 읽는 동작, 태그에 포함된 정보를 이용하여 뱅크에 저장된 캐시 라인의 데이터를 메모리 장치(120)보다 하위 계층의 메모리 또는 스토리지 장치에 이동 및 저장하는 동작을 포함할 수 있다. 필요에 따라 플러쉬는, 태그에 포함된 정보가 더티 플래그가 설정되지 않은 상태 등으로 인해 하위 계층의 메모리 또는 스토리지로 데이터의 업데이트를 필요로 하지 않는 경우, 캐시 라인의 데이터를 하위 계층의 메모리 또는 스토리지 장치에 저장하는 동작이 생략될 수도 있다. 메모리의 계층은, 프로세서에 포함되는 레지스터, L1 캐시, L2 캐시, L3 캐시, 메인 메모리, 2차적 스토리지(secondary storage) 등으로 구성될 수 있다. 예를 들면, 메모리 장치(120)가 L1 캐시이면, 메모리 장치(120)보다 하위 계층의 메모리는 L2 캐시, L3 캐시, 또는 메인 메모리일 수 있고, 메모리 장치(120)보다 하위 계층의 스토리지 장치는 2차적 스토리지일 수 있다. 하지만, 이에 한정되는 것은 아니다. 메인 메모리는 예시적으로, 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) 등에 해당할 수 있다. 2차적 스토리지는, 메모리 카드, PC 카드, 컴팩트 플래시 카드, 스마트 미디어 카드, 메모리 스틱, 멀티미디어 카드, SD 카드, 유니버설 플래시 기억 장치, HDD(Hard Disk Drive), 또는 SSD(Solid State Disk/Drive) 등에 해당할 수 있다.In step S120, the memory device (120) flushes at least one bank to be powered off. For example, the cache controller (121) may control the first bank group to flush the first bank group in response to the power control signal, and cache lines included in the first bank group may be flushed. The flush may include an operation of reading a tag of a cache line stored in the bank, and an operation of moving and storing data of the cache line stored in the bank to a memory or storage device of a lower layer than the memory device (120) using information included in the tag. If necessary, the flush may omit an operation of storing data of the cache line to a memory or storage device of a lower layer if the information included in the tag does not require an update of data to the memory or storage of a lower layer, such as when a dirty flag is not set. The memory layer may be composed of a register included in the processor, an L1 cache, an L2 cache, an L3 cache, a main memory, a secondary storage, etc. For example, if the memory device (120) is an L1 cache, a memory in a lower layer than the memory device (120) may be an L2 cache, an L3 cache, or a main memory, and a storage device in a lower layer than the memory device (120) may be a secondary storage. However, the present invention is not limited thereto. The main memory may correspond to, for example, 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), etc. The secondary storage may correspond to, for example, a memory card, a PC card, a compact flash card, a smart media card, a memory stick, a multimedia card, an SD card, a universal flash memory device, an HDD (Hard Disk Drive), or an SSD (Solid State Disk/Drive).
단계 S130에서, 메모리 장치(120)는 트랜잭션 요청을 생성하는 마스터의 해시 함수를 변경한다. 예를 들면, 마스터는 캐시 컨트롤러(121)일 수 있으며, 캐시 컨트롤러(121)는 어드레스를 입력받아 해시 값을 타겟으로 출력하는 복수의 해시 함수들 증 단계 S110의 요청에 따라 해시 함수를 선택하여, 선택된 해시 함수의 해시 값을 타겟으로서 출력할 수 있다.In step S130, the memory device (120) changes the hash function of the master that generates the transaction request. For example, the master may be a cache controller (121), and the cache controller (121) may select a hash function from among a plurality of hash functions that receive an address and output a hash value as a target according to the request of step S110, and output the hash value of the selected hash function as a target.
단계 S140에서, 전력 관리기(130)는 전원이 꺼질 적어도 하나의 뱅크의 전원을 오프(off)한다. 예를 들면, 전력 관리기(130)는, 제1 뱅크 그룹에 대한 플러쉬 동작이 수행된 이후, 제1 뱅크 그룹에 전력의 공급을 중단할 수 있다.In step S140, the power manager (130) turns off the power of at least one bank to be powered off. For example, the power manager (130) may stop supplying power to the first bank group after a flush operation for the first bank group is performed.
도 7은 도 6에 따른 동작이 수행된 경우에 제1 트랜잭션을 뱅크에 전달하는 예시적인 실시예를 설명하기 위한 도면이다.FIG. 7 is a drawing for explaining an exemplary embodiment of transmitting a first transaction to a bank when the operation according to FIG. 6 is performed.
도 6 및 도 7을 참조하면, 제2 전력 제어 신호(PCS2)가 캐시 컨트롤러(210) 및 웨이 선택기(220)에 입력되기 전에는, 제1 뱅크(230_1)는 전력(PWR)을 공급받아 제1 어드레스(ADDai)에 대응되는 제1 캐시 라인을 저장 가능한 제1 웨이 그룹을 포함할 수 있다. 제1 웨이 그룹은 제1 내지 제4 웨이(WAY1, WAY2, WAY3, WAY4)를 포함할 수 있다. 제2 전력 제어 신호(PCS2)가 캐시 컨트롤러(210) 및 웨이 선택기(220)에 입력될 수 있다. 제2 전력 제어 신호(PCS2)는 제1 및 제2 뱅크(230_1, 230_2) 중 어느 하나의 뱅크에만, 제2 뱅크(230_2)에 전력을 공급할 것을 지시할 수 있다. 제1 뱅크(230_1)는 제1 캐시 라인을 플러쉬할 수 있다. 이때, 제1 캐시 라인의 태그 및 데이터가 업데이트된 경우, 도 7에 도시된 바와 같이 제1 캐시 라인의 데이터가 하위 계층의 메모리(또는 하위 계층의 스토리지)에 저장될 수 있다. 도 7에 도시된 바와 달리 제1 캐시 라인의 태그 및 데이터가 업데이트되지 않고 유지된 경우, 제1 캐시 라인은 하위 계층의 메모리(또는 하위 계층의 스토리지)에 저장되지 않을 수 있다. 제1 뱅크(230_1)에 공급되는 전력(PWR)이 중단될 수 있다. 제2 뱅크(230_2)는 전력(PWR)을 공급받아 제2 어드레스(ADDbi)에 대응되는 제2 캐시 라인을 저장하는 제2 웨이 그룹을 포함할 수 있다. 제2 웨이 그룹은 제1 내지 제4 웨이(WAY1, WAY2, WAY3, WAY4)를 포함할 수 있다. 제2 어드레스에 대응되는 제2 캐시 라인은, 예를 들면, 제2 뱅크(230_2)에 포함된 제1 웨이(WAY1)의 캐시 라인 또는 제2 웨이(WAY2)의 캐시 라인일 수 있다.Referring to FIGS. 6 and 7, before the second power control signal (PCS2) is input to the cache controller (210) and the way selector (220), the first bank (230_1) may include a first way group capable of receiving power (PWR) and storing a first cache line corresponding to the first address (ADDai). The first way group may include first to fourth ways (WAY1, WAY2, WAY3, WAY4). The second power control signal (PCS2) may be input to the cache controller (210) and the way selector (220). The second power control signal (PCS2) may instruct only one of the first and second banks (230_1, 230_2) to supply power to the second bank (230_2). The first bank (230_1) may flush the first cache line. At this time, if the tag and data of the first cache line are updated, the data of the first cache line may be stored in the memory of the lower layer (or the storage of the lower layer) as illustrated in FIG. 7. Unlike as illustrated in FIG. 7, if the tag and data of the first cache line are not updated and are maintained, the first cache line may not be stored in the memory of the lower layer (or the storage of the lower layer). Power (PWR) supplied to the first bank (230_1) may be cut off. The second bank (230_2) may include a second way group that receives power (PWR) and stores a second cache line corresponding to the second address (ADDbi). The second way group may include first to fourth ways (WAY1, WAY2, WAY3, WAY4). The second cache line corresponding to the second address may be, for example, a cache line of the first way (WAY1) or a cache line of the second way (WAY2) included in the second bank (230_2).
제2 전력 제어 신호(PCS2)가 메모리(200)에 입력되면, 임의의 제1 어드레스(ADDai)는 제2 뱅크(230_2)에 리맵핑될 수 있다. 예를 들면, 캐시 컨트롤러(210)는, 제1 트랜잭션(TXNa)을 수신할 수 있다. 제1 트랜잭션(TXNa)은 임의의 제1 어드레스(ADDai)를 포함할 수 있다. 캐시 컨트롤러(210)는 제2 전력 제어 신호(PCS2)에 응답하여 제2 해시 함수(212)를 선택할 수 있다. 캐시 컨트롤러(210)는, 제2 해시 함수(212) 및 제1 트랜잭션(TXNa)을 기초로, 제2 뱅크(230_2)를 생성할 수 있다. 캐시 컨트롤러(210)는 제2 타겟(TGT2) 및 제1 트랜잭션(TXNa)을 웨이 선택기(220)에 출력할 수 있다. When the second power control signal (PCS2) is input to the memory (200), any first address (ADDai) may be remapped to the second bank (230_2). For example, the cache controller (210) may receive a first transaction (TXNa). The first transaction (TXNa) may include any first address (ADDai). The cache controller (210) may select a second hash function (212) in response to the second power control signal (PCS2). The cache controller (210) may generate the second bank (230_2) based on the second hash function (212) and the first transaction (TXNa). The cache controller (210) may output the second target (TGT2) and the first transaction (TXNa) to the way selector (220).
웨이 선택기(220)는, 제1 트랜잭션(TXNa), 제2 전력 제어 신호(PCS2), 및 제2 타겟(TGT2)을 기초로, 제1 트랜잭션(TXNa)을 제2 뱅크(230_2)의 적어도 하나의 웨이에 전달할 수 있다. 실시예에 따라, 웨이 선택기(220)는, 제1 트랜잭션(TXNa)의 제1 어드레스(ADDai) 및 제2 전력 제어 신호(PCS2)를 기초로, 제1 트랜잭션(TXNa)을 제2 뱅크(230_2)의 적어도 하나의 웨이에 전달할 수 있다. The way selector (220) may transmit the first transaction (TXNa) to at least one way of the second bank (230_2) based on the first transaction (TXNa), the second power control signal (PCS2), and the second target (TGT2). According to an embodiment, the way selector (220) may transmit the first transaction (TXNa) to at least one way of the second bank (230_2) based on the first address (ADDai) of the first transaction (TXNa) and the second power control signal (PCS2).
일 실시예에서, 웨이 선택기(220)는, 임의의 제1 어드레스(ADDai), 제1 전력 제어 신호(PCS1) 및 제2 타겟(TGT2)을 이용하여, 제2 웨이 필드(WF22)를 생성할 수 있다. 이때, 제2 웨이 필드(WF22)에서 마스킹된 웨이(MW)는 제1 및 제2 웨이(WAY1, WAY2)일 수 있고, 언마스킹된 웨이(UMW)는 제3 및 제4 웨이(WAY3, WAY4)일 수 있다. 하지만, 이에 한정되는 것은 아니다. 언마스킹된 웨이(UMW)의 개수는 미리 설정될 수 있다. 제1 및 제2 웨이(WAY1, WAY2)는 제1 웨이 그룹에 포함될 수 있고, 제3 및 제4 웨이(WAY3, WAY4)는 제2 웨이 그룹에 포함될 수 있다. 제2 뱅크(230_2)는 제3 웨이(WAY3) 및/또는 제4 웨이(WAY4)에 액세스하여, 제1 트랜잭션(TXNa)에 따른 동작을 수행할 수 있다. 예를 들면, 제2 뱅크(230_2)는 제3 웨이(WAY3) 및/또는 제4 웨이(WAY4)에 저장된 태그를 기초로, 캐시 히트 또는 캐시 미스 여부를 판단할 수 있다. 이 경우, 제3 웨이(WAY3) 및/또는 제4 웨이(WAY4)에 저장된 태그가 없거나 제1 어드레스(ADDai)와 다른 어드레스에 관한 정보를 포함하는 경우, 캐시 미스가 발생할 수 있다.In one embodiment, the way selector (220) may generate a second way field (WF22) using an arbitrary first address (ADDai), a first power control signal (PCS1), and a second target (TGT2). At this time, the masked ways (MW) in the second way field (WF22) may be the first and second ways (WAY1, WAY2), and the unmasked ways (UMW) may be the third and fourth ways (WAY3, WAY4). However, the present invention is not limited thereto. The number of unmasked ways (UMW) may be preset. The first and second ways (WAY1, WAY2) may be included in a first way group, and the third and fourth ways (WAY3, WAY4) may be included in a second way group. The second bank (230_2) can access the third way (WAY3) and/or the fourth way (WAY4) to perform an operation according to the first transaction (TXNa). For example, the second bank (230_2) can determine whether there is a cache hit or a cache miss based on a tag stored in the third way (WAY3) and/or the fourth way (WAY4). In this case, if the tag stored in the third way (WAY3) and/or the fourth way (WAY4) does not exist or includes information about an address different from the first address (ADDai), a cache miss may occur.
도 8은 도 6에 따른 동작이 수행된 경우에 제2 트랜잭션을 뱅크에 전달하는 예시적인 실시예를 설명하기 위한 도면이다.FIG. 8 is a drawing for explaining an exemplary embodiment of transmitting a second transaction to a bank when the operation according to FIG. 6 is performed.
도 6 및 도 8을 참조하면, 제2 전력 제어 신호(PCS2)가 메모리(200)에 입력되면, 제1 뱅크(230_1)는 제1 캐시 라인을 플러쉬할 수 있고, 제1 뱅크(230_1)에 공급되는 전력(PWR)이 중단될 수 있다. 임의의 제2 어드레스(ADDbi)는 제2 뱅크(230_2)에 리맵핑될 수 있고, 임의의 제2 어드레스(ADDbi)를 포함하는 제2 트랜잭션(TXNb)은, 제2 뱅크(230_2)에 전달될 수 있다. 예를 들면, 캐시 컨트롤러(210)는 제2 해시 함수(212)를 선택하고, 제2 해시 함수(212) 및 임의의 제2 어드레스(ADDbi)를 기초로 제2 타겟(TGT2)을 생성할 수 있다. 웨이 선택기(220)는 제2 전력 제어 신호(PCS2) 및 임의의 제2 어드레스(ADDbi)를 기초로, 제2 웨이 필드(WF21)를 생성할 수 있으며, 제2 웨이 필드(WF22)에서 언마스킹된 웨이(UMW)는 제1 내지 제4 웨이(WAY1, WAY2, WAY3, WAY4)일 수 있고, 마스킹된 웨이(MW)는 없을 수 있다. 즉, 제2 뱅크(230_2)는 제1 내지 제4 웨이(WAY1, WAY2, WAY3, WAY4)에 액세스 가능하다.Referring to FIGS. 6 and 8, when a second power control signal (PCS2) is input to the memory (200), the first bank (230_1) may flush the first cache line, and power (PWR) supplied to the first bank (230_1) may be cut off. An arbitrary second address (ADDbi) may be remapped to the second bank (230_2), and a second transaction (TXNb) including the arbitrary second address (ADDbi) may be transmitted to the second bank (230_2). For example, the cache controller (210) may select a second hash function (212) and generate a second target (TGT2) based on the second hash function (212) and the arbitrary second address (ADDbi). The way selector (220) can generate a second way field (WF21) based on the second power control signal (PCS2) and an arbitrary second address (ADDbi), and in the second way field (WF22), the unmasked ways (UMW) can be the first to fourth ways (WAY1, WAY2, WAY3, WAY4), and there can be no masked ways (MW). That is, the second bank (230_2) can access the first to fourth ways (WAY1, WAY2, WAY3, WAY4).
도 9는 본 개시의 다른 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도이다.FIG. 9 is a flowchart illustrating the operation of an electronic device according to another embodiment of the present disclosure.
도 1 및 도 9를 참조하면, 단계 S210에서, 메모리 장치(120)가 적어도 하나의 뱅크의 전원을 켜기 위한 요청을 수신한다. 이때, 요청은 전술한 전력 제어 신호에 대응될 수 있다. 적어도 하나의 뱅크는, 예를 들어 제1 뱅크(230_1)일 수 있으며, 제1 뱅크 그룹에 포함될 수 있다. 예를 들면, 전력 관리기(130)는, 제1 뱅크 그룹에 전력을 공급할 것을 지시하는 전력 제어 신호가 발생하기 이전에, 제1 뱅크 그룹에 전력의 공급을 중단하고, 제2 뱅크 그룹에 전력을 공급할 수 있다. 그리고, 전력 관리기(130)는, 전력 제어 신호를 메모리 장치(120)에 출력할 수 있다.Referring to FIG. 1 and FIG. 9, in step S210, the memory device (120) receives a request to turn on power of at least one bank. At this time, the request may correspond to the power control signal described above. The at least one bank may be, for example, the first bank (230_1) and may be included in the first bank group. For example, the power manager (130) may stop supplying power to the first bank group and supply power to the second bank group before a power control signal instructing to supply power to the first bank group is generated. Then, the power manager (130) may output the power control signal to the memory device (120).
단계 S220에서, 전력 관리기(130)는 적어도 하나의 뱅크의 전원을 키고, 메모리 장치(120)는 전원이 켜질 적어도 하나의 뱅크에 저장된 캐시 라인들을 무효로 처리한다. 예를 들면, 전력 관리기(130)는 제1 뱅크 그룹에 전력을 공급할 수 있다. 캐시 컨트롤러(121)는, 전력 제어 신호에 응답하여, 제1 뱅크 그룹에 포함된 캐시 라인들을 무효(invalid)처리하도록 제1 뱅크 그룹을 제어할 수 있다.In step S220, the power manager (130) turns on power to at least one bank, and the memory device (120) invalidates cache lines stored in at least one bank to be powered on. For example, the power manager (130) may supply power to a first bank group. The cache controller (121) may control the first bank group to invalidate cache lines included in the first bank group in response to the power control signal.
단계 S230에서, 메모리 장치(120)는 전원이 꺼지지 않은 다른 적어도 하나의 뱅크에서 모든 웨이들을 플러쉬한다. 전원이 꺼지지 않은 다른 적어도 하나의 뱅크는, 예를 들어 제2 뱅크(230_2)일 수 있으며, 제2 뱅크 그룹에 포함될 수 있다. 예를 들면, 캐시 컨트롤러(121)는, 제1 뱅크 그룹에 포함된 캐시 라인들이 무효로 처리된 이후, 제2 뱅크 그룹에 포함된 제2 뱅크(230_2)의 제1 내지 제4 웨이(WAY1, WAY2, WAY3, WAY4)를 플러쉬하도록 제2 뱅크 그룹(예를 들어, 제2 뱅크(230_2))을 제어할 수 있으며, 이때 제2 뱅크(230_2)에 포함된 모든 캐시 라인들이 플러쉬될 수 있다. In step S230, the memory device (120) flushes all ways in at least one other bank that is not powered off. The at least one other bank that is not powered off may be, for example, the second bank (230_2) and may be included in the second bank group. For example, the cache controller (121) may control the second bank group (for example, the second bank (230_2)) to flush the first to fourth ways (WAY1, WAY2, WAY3, WAY4) of the second bank (230_2) included in the second bank group after the cache lines included in the first bank group are invalidated, and at this time, all cache lines included in the second bank (230_2) may be flushed.
단계 S240에서, 메모리 장치(120)는 트랜잭션 요청을 생성하는 마스터의 해시 함수를 변경한다. 즉, 임의의 제1 어드레스(ADDai)를 포함하는 제1 트랜잭션(TXNa)은 제1 뱅크(230_1)에 전달되고, 임의의 제2 어드레스(ADDbi)를 포함하는 제2 트랜잭션(TXNb)은 제2 뱅크(230_2)에 전달되도록, 해시 함수가 변경될 수 있다. 예를 들면, 캐시 컨트롤러(210)는 제1 해시 함수(211)를 선택할 수 있다.In step S240, the memory device (120) changes the hash function of the master that generates the transaction request. That is, the hash function may be changed so that a first transaction (TXNa) including an arbitrary first address (ADDai) is transmitted to the first bank (230_1), and a second transaction (TXNb) including an arbitrary second address (ADDbi) is transmitted to the second bank (230_2). For example, the cache controller (210) may select the first hash function (211).
도 10은 도 9에 따른 동작이 수행된 경우에 트랜잭션을 뱅크에 전달하는 예시적인 실시예를 설명하기 위한 도면이다.FIG. 10 is a drawing for explaining an exemplary embodiment of transmitting a transaction to a bank when the operation according to FIG. 9 is performed.
도 9 및 도 10을 참조하면, 제1 전력 제어 신호(PCS1)가 메모리(200)에 입력될 수 있다. 제1 뱅크(230_1)는 전력(PWR)을 공급받고, 제1 뱅크(230_1)에 포함된 제1 내지 제4 웨이(WAY1, WAY2, WAY3, WAY4)에 저장된 캐시 라인들은 무효 처리될 수 있다. 한편, 제2 뱅크(230_2)는 제1 내지 제4 웨이(WAY1, WAY2, WAY3, WAY4) 모두 플러쉬할 수 있다.Referring to FIGS. 9 and 10, a first power control signal (PCS1) may be input to the memory (200). The first bank (230_1) may be supplied with power (PWR), and cache lines stored in the first to fourth ways (WAY1, WAY2, WAY3, WAY4) included in the first bank (230_1) may be invalidated. Meanwhile, the second bank (230_2) may flush all of the first to fourth ways (WAY1, WAY2, WAY3, WAY4).
제1 전력 제어 신호(PCS1)가 메모리(200)에 입력되면, 임의의 제1 어드레스(ADDai)는 제1 뱅크(230_1)에 리맵핑될 수 있다. 이에 대한 실시예는 도 3을 참조하여 전술한 바와 동일할 수 있다. 웨이 선택기(220)에 의해 출력된 제1 웨이 필드(WF1)에서 언마스킹된 웨이(UMW)는 제1 내지 제4 웨이(WAY1, WAY2, WAY3, WAY4)일 수 있다. 웨이 선택기(220)는, 제1 웨이 필드(WF1) 및 제1 트랜잭션(TXNa)을 제1 뱅크(230_2)에 전달할 수 있다. When the first power control signal (PCS1) is input to the memory (200), any first address (ADDai) can be remapped to the first bank (230_1). An embodiment thereof may be the same as described above with reference to FIG. 3. The unmasked way (UMW) in the first way field (WF1) output by the way selector (220) may be the first to fourth ways (WAY1, WAY2, WAY3, WAY4). The way selector (220) may transfer the first way field (WF1) and the first transaction (TXNa) to the first bank (230_2).
도 10에 도시된 바와 다른 실시예, 예를 들어 도 4를 참조하여 전술한 바와 같이 웨이 선택기(220)가 제2 뱅크(230_2)에 포함된 경우, 캐시 컨트롤러(210)는 제1 타겟(TGT1)에 따라 제1 트랜잭션(TXNa)을 제1 뱅크(230_1)에 전달할 수 있다.In another embodiment, as illustrated in FIG. 10, for example, when the way selector (220) is included in the second bank (230_2) as described above with reference to FIG. 4, the cache controller (210) may transfer the first transaction (TXNa) to the first bank (230_1) according to the first target (TGT1).
도 11은 본 개시의 또 다른 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도이다.FIG. 11 is a flowchart illustrating the operation of an electronic device according to another embodiment of the present disclosure.
도 1, 도 9, 및 도 11을 참조하면, 단계 S210, 단계 S220, 및 단계 S240은 도 9를 참조하여 전술한 바와 같다.Referring to FIGS. 1, 9, and 11, steps S210, S220, and S240 are as described above with reference to FIG. 9.
단계 S231에서, 메모리 장치(120)는 전원이 꺼지지 않은 다른 적어도 하나의 뱅크에서 미리 정의된 웨이들을 플러쉬한다. 전원이 꺼지지 않은 다른 적어도 하나의 뱅크는, 예를 들면, 제2 뱅크(230_2)일 수 있고, 미리 정의된 웨이들은, 언마스킹된 웨이(UMW)로서, 도 7을 참조하여 전술한 제2 뱅크(230_2)에서 제2 웨이 그룹에 포함된 제3 및 제4 웨이(WAY3, WAY4)일 수 있다. 미리 정의된 웨이들을 플러쉬하는 것은, 부분적인 플러쉬로 지칭될 수 있다.In step S231, the memory device (120) flushes predefined ways in at least one other bank that is not powered off. The at least one other bank that is not powered off may be, for example, the second bank (230_2), and the predefined ways may be the third and fourth ways (WAY3, WAY4) included in the second way group in the second bank (230_2) described above with reference to FIG. 7, as unmasked ways (UMWs). Flushing the predefined ways may be referred to as a partial flush.
도 12는 도 11에 따른 동작이 수행된 경우에 트랜잭션을 뱅크에 전달하는 예시적인 실시예를 설명하기 위한 도면이다.FIG. 12 is a drawing for explaining an exemplary embodiment of transmitting a transaction to a bank when the operation according to FIG. 11 is performed.
도 7, 도 11 및 도 12를 참조하면, 제1 전력 제어 신호(PCS1)가 메모리(200)에 입력되면, 제1 뱅크(230_1)는 전력(PWR)을 공급받고, 제1 뱅크(230_1)에 포함된 제1 내지 제4 웨이(WAY1, WAY2, WAY3, WAY4)은 무효로 처리될 수 있다. 한편, 제2 뱅크(230_2)는 제1 내지 제4 웨이(WAY1, WAY2, WAY3, WAY4) 중 미리 정의된 웨이들(예를 들어, 제3 및 제4 웨이(WAY3, WAY4))를 부분적으로 플러쉬할 수 있다. 도 7을 참조하여 전술한 바와 같이, 제1 및 제2 웨이(WAY1, WAY2)는 임의의 제2 어드레스(ADDbi)에 대응되는 캐시 라인이 저장될 수 있고, 제3 및 제4 웨이(WAY3, WAY4)는 임의의 제1 어드레스(ADDai)에 대응되는 캐시 라인이 저장될 수 있기 때문이다. 한편, 임의의 제1 어드레스(ADDai)를 포함하는 제1 트랜잭션(TXNa)은 제1 뱅크(230_1)에 전달될 수 있다. Referring to FIGS. 7, 11, and 12, when a first power control signal (PCS1) is input to the memory (200), the first bank (230_1) is supplied with power (PWR), and the first to fourth ways (WAY1, WAY2, WAY3, WAY4) included in the first bank (230_1) may be processed as invalid. Meanwhile, the second bank (230_2) may partially flush predefined ways (for example, the third and fourth ways (WAY3, WAY4)) among the first to fourth ways (WAY1, WAY2, WAY3, WAY4). As described above with reference to FIG. 7, the first and second ways (WAY1, WAY2) can store cache lines corresponding to any second address (ADDbi), and the third and fourth ways (WAY3, WAY4) can store cache lines corresponding to any first address (ADDai). Meanwhile, the first transaction (TXNa) including any first address (ADDai) can be transmitted to the first bank (230_1).
도 13은 본 개시의 예시적인 실시예에 따른 웨이 선택기의 블록도이다.FIG. 13 is a block diagram of a way selector according to an exemplary embodiment of the present disclosure.
도 13을 참조하면, 웨이 선택기(300)는, 해시 함수(310), 복수의 웨이 필드 생성기들, 및 웨이 필드 선택기(340)를 포함할 수 있다. 복수의 웨이 필드 생성기들은 제1 웨이 필드 생성기(320) 및 제2 웨이 필드 생성기(330)를 포함할 수 있으나, 이에 한정되는 것은 아니며, 다른 실시예에서 뱅크의 개수 및 전력 제어 신호에 따라 3개 이상의 웨이 필드 생성기들이 웨이 선택기(300)에 포함될 수도 있다.Referring to FIG. 13, the way selector (300) may include a hash function (310), a plurality of way field generators, and a way field selector (340). The plurality of way field generators may include, but are not limited to, a first way field generator (320) and a second way field generator (330), and in other embodiments, three or more way field generators may be included in the way selector (300) depending on the number of banks and a power control signal.
해시 함수(310)는, 어드레스(ADD) 및 타겟(TGT)을 기초로, 복수의 웨이 필드 생성기들(예를 들어, 제1 웨이 필드 생성기(320) 및 제2 웨이 필드 생성기(330)) 중 어느 하나의 웨이 필드 선택기를 선택할 것을 지시하는 선택 신호(SEL)를 출력할 수 있다. 실시예에 따라, 해시 함수(310)는, 어드레스(ADD)의 태그 필드 및 인덱스 필드를 입력 받고, 선택 신호(SEL)를 출력할 수 있다. 일 실시예에서, 해시 함수(310)는 캐시 컨트롤러(210)의 제1 해시 함수(211)와 동일할 수 있다. 어드레스(ADD)가 제1 어드레스(ADDai)이면, 선택 신호(SEL)는 제1 값일 수 있다. 선택 신호(SEL)는 제1 값이면, 제1 레지스터들(321, 331) 각각에 의해 출력되는 값들이 선택될 수 있다. 어드레스(ADD)가 제2 어드레스(ADDbi)이면, 선택 신호(SEL)는 제2 값일 수 있다. 선택 신호(SEL)는 제2 값이면, 제2 레지스터들(322, 332) 각각에 의해 출력되는 값들이 선택될 수 있다.The hash function (310) may output a selection signal (SEL) that instructs to select one of a plurality of way field generators (for example, the first way field generator (320) and the second way field generator (330)) based on the address (ADD) and the target (TGT). According to an embodiment, the hash function (310) may receive a tag field and an index field of the address (ADD) and output a selection signal (SEL). In one embodiment, the hash function (310) may be identical to the first hash function (211) of the cache controller (210). If the address (ADD) is the first address (ADDai), the selection signal (SEL) may be a first value. If the selection signal (SEL) is the first value, values output by each of the first registers (321, 331) may be selected. If the address (ADD) is the second address (ADDbi), the selection signal (SEL) can be the second value. If the selection signal (SEL) is the second value, the values output by each of the second registers (322, 332) can be selected.
제1 웨이 필드 생성기(320) 및 제2 웨이 필드 생성기(330)는 미리 저장된 웨이 필드의 값을 출력할 수 있다. 일 실시예에서, 제1 웨이 필드 생성기(320) 및 제2 웨이 필드 생성기(330) 각각은, 복수의 레지스터들 및 레지스터 선택기를 포함할 수 있다. 복수의 레지스터들의 개수는 2개일 수 있으나, 이에 한정되는 것은 아니며, 다른 실시예에서 뱅크의 개수 및 전력 제어 신호에 따라 3개 이상의 레지스터들이 각 웨이 필드 생성기에 포함될 수도 있다.The first way field generator (320) and the second way field generator (330) can output values of way fields that are stored in advance. In one embodiment, each of the first way field generator (320) and the second way field generator (330) can include a plurality of registers and a register selector. The number of the plurality of registers can be two, but is not limited thereto, and in another embodiment, three or more registers may be included in each way field generator depending on the number of banks and the power control signal.
제1 웨이 필드 생성기(320)는, 제1 어드레스(ADDai)가 제1 뱅크(230_1)에 맵핑되고 제2 어드레스(ADDbi)가 제2 뱅크(230_2)에 맵핑되기 위한 웨이 필드를 생성할 수 있다. 일 실시예에서, 제1 웨이 필드 생성기(320)는 제1 레지스터(321), 제2 레지스터(322), 및 레지스터 선택기(323)를 포함할 수 있다. 제1 레지스터(321)는 제1 어드레스(ADDai)와 제1 뱅크(230_1)를 맵핑하기 위한 웨이 필드(WF11)의 값들을 저장하고, 웨이 필드(WF11)의 값들을 레지스터 선택기(323)에 출력할 수 있다. 제2 레지스터(322)는 제2 어드레스(ADDbi)와 제2 뱅크(230_2)를 맵핑하기 위한 웨이 필드(WF12)의 값들을 저장하고, 웨이 필드(WF12)의 값들을 레지스터 선택기(323)에 출력할 수 있다. 일 실시예에서, 웨이 필드들(WF11, WF12) 각각의 값들은 비트 값들(b4, b3, b3, b1)일 수 있다. 각 비트 값은 각 웨이의 마스킹 여부를 나타낼 수 있다. 비트 값들(b4, b3, b3, b1)은, 예를 들어, '0001', '0011', '0111', '1111' 등 다양하게 구성될 수 있다. 비트 값(b4)은 제4 웨이(WAY4)의 마스킹 여부를 나타내고, 비트 값(b3)은 제3 웨이(WAY3)의 마스킹 여부를 나타내고, 비트 값(b2)은 제2 웨이(WAY2)의 마스킹 여부를 나타내며, 비트 값(b1)은 제1 웨이(WAY1)의 마스킹 여부를 나타낼 수 있다. 예를 들면, "0001"은, 제2 내지 제4 웨이(WAY2, WAY3, WAY4)가 마스킹되고 제1 웨이(WAY1)는 언마스킹된 것을 지시할 수 있다. 웨이 선택기(300)가 제2 뱅크(230_2)에 포함되는 등의 실시예에 따라, 제1 레지스터(321)는 생략될 수도 있다. 일 실시예에서, 웨이 필드(WF12)는 제1 내지 제4 웨이(WAY1, WAY2, WAY3, WAY4) 모두가 언마스킹된 것을 지시하는 값들을 가질 수 있다. 레지스터 선택기(323)는 선택 신호(SEL)에 따라 제1 레지스터(321) 또는 제2 레지스터(322)의 출력 값들을 선택할 수 있다. 예를 들면, 선택 신호(SEL)가 제1 값을 가지면, 레지스터 선택기(323)는 제1 레지스터(321)에 저장된 웨이 필드(WF11)의 값들을 출력할 수 있다. 선택 신호(SEL)가 제2 값을 가지면, 레지스터 선택기(323)는 제2 레지스터(322)에 저장된 웨이 필드(WF12)의 값들을 출력할 수 있다.The first way field generator (320) can generate a way field for mapping the first address (ADDai) to the first bank (230_1) and the second address (ADDbi) to the second bank (230_2). In one embodiment, the first way field generator (320) can include a first register (321), a second register (322), and a register selector (323). The first register (321) can store values of a way field (WF11) for mapping the first address (ADDai) and the first bank (230_1), and output the values of the way field (WF11) to the register selector (323). The second register (322) stores the values of the way field (WF12) for mapping the second address (ADDbi) and the second bank (230_2), and can output the values of the way field (WF12) to the register selector (323). In one embodiment, the values of each of the way fields (WF11, WF12) can be bit values (b4, b3, b3, b1). Each bit value can indicate whether each way is masked. The bit values (b4, b3, b3, b1) can be configured in various ways, such as, for example, '0001', '0011', '0111', '1111', etc. The bit value (b4) may indicate whether the fourth way (WAY4) is masked, the bit value (b3) may indicate whether the third way (WAY3) is masked, the bit value (b2) may indicate whether the second way (WAY2) is masked, and the bit value (b1) may indicate whether the first way (WAY1) is masked. For example, “0001” may indicate that the second to fourth ways (WAY2, WAY3, WAY4) are masked and the first way (WAY1) is unmasked. Depending on an embodiment in which the way selector (300) is included in the second bank (230_2), the first register (321) may be omitted. In one embodiment, the way field (WF12) may have values indicating that all of the first to fourth ways (WAY1, WAY2, WAY3, WAY4) are unmasked. The register selector (323) can select output values of the first register (321) or the second register (322) according to the selection signal (SEL). For example, if the selection signal (SEL) has a first value, the register selector (323) can output values of the way field (WF11) stored in the first register (321). If the selection signal (SEL) has a second value, the register selector (323) can output values of the way field (WF12) stored in the second register (322).
제2 웨이 필드 생성기(330)는, 제1 어드레스(ADDai)가 제2 뱅크(230_2)에서 미리 정의된 일부 웨이들(예, 제3 및 제4 웨이(WAY3, WAY4)) 맵핑되고 제2 어드레스(ADDbi)가 제2 뱅크(230_2)의 웨이들(예, 제1 내지 제4 웨이(WAY1, WAY2, WAY3, WAY4))에 맵핑되기 위한 웨이 필드를 생성할 수 있다. 일 실시예에서, 제2 웨이 필드 생성기(330)는, 제1 레지스터(331), 제2 레지스터(332), 및 레지스터 선택기(333)를 포함할 수 있다. 제1 레지스터(331)는 제1 어드레스(ADDai)와 미리 정의된 일부 웨이들을 맵핑하기 위한 웨이 필드(WF21)의 값들을 저장하고, 웨이 필드(WF21)의 값들을 레지스터 선택기(333)에 출력할 수 있다. 제2 레지스터(332)는 제2 어드레스(ADDbi)와 제2 뱅크(230_2)를 맵핑하기 위한 웨이 필드(WF22)의 값들을 저장하고, 웨이 필드(WF12)의 값들을 레지스터 선택기(333)에 출력할 수 있다. 일 실시예에서, 웨이 필드들(WF21, WF22) 각각의 값들은 각 웨이의 마스킹 여부를 나타내는 비트 값들(b4, b3, b3, b1)일 수 있다. 예를 들면, 웨이 필드(WF21)의 비트 값들(b4, b3, b3, b1)은 "1100"일 수 있고, 웨이 필드(WF22)의 비트 값들(b4, b3, b3, b1)은 "1111"일 수 있다. 하지만, 이에 한정되는 것은 아니며, 다양한 설계 방법으로 비트 값들이 설정될 수도 있다. 레지스터 선택기(333)는 선택 신호(SEL)에 따라 제1 레지스터(321) 또는 제2 레지스터(322)의 출력 값들을 선택할 수 있다. The second way field generator (330) can generate a way field for mapping a first address (ADDai) to some predefined ways (e.g., the third and fourth ways (WAY3, WAY4)) in the second bank (230_2) and for mapping a second address (ADDbi) to some ways (e.g., the first to fourth ways (WAY1, WAY2, WAY3, WAY4)) of the second bank (230_2). In one embodiment, the second way field generator (330) can include a first register (331), a second register (332), and a register selector (333). The first register (331) can store values of a way field (WF21) for mapping the first address (ADDai) and some predefined ways, and output the values of the way field (WF21) to the register selector (333). The second register (332) stores the values of the way field (WF22) for mapping the second address (ADDbi) and the second bank (230_2), and can output the values of the way field (WF12) to the register selector (333). In one embodiment, the values of each of the way fields (WF21, WF22) may be bit values (b4, b3, b3, b1) indicating whether each way is masked. For example, the bit values (b4, b3, b3, b1) of the way field (WF21) may be "1100", and the bit values (b4, b3, b3, b1) of the way field (WF22) may be "1111". However, the present invention is not limited thereto, and the bit values may be set in various design methods. The register selector (333) can select the output values of the first register (321) or the second register (322) according to the selection signal (SEL).
웨이 필드 선택기(340)는 전력 제어 신호(PCS)에 따라 제1 웨이 필드 생성기(320) 또는 제2 웨이 필드 생성기(330)의 출력 값들을 웨이 필드(WR)로 선택할 수 있다. 예를 들면, 전력 제어 신호(PCS)가 제1 전력 제어 신호(PCS1)이면, 웨이 필드 선택기(340)는 제1 웨이 필드 생성기(320)의 출력 값들을 출력할 수 있다. 제1 전력 제어 신호(PCS1)는 제1 및 제2 뱅크(230_1, 230_2)에 전력을 공급할 것을 지시할 수 있다. 전력 제어 신호(PCS)가 제2 전력 제어 신호(PCS2)이면, 웨이 필드 선택기(340)는 제2 웨이 필드 생성기(330)의 출력 값들을 출력할 수 있다. 제2 전력 제어 신호(PCS2)는 제2 뱅크(230_2)에만 전력을 공급할 것을 지시할 수 있다.The way field selector (340) can select the output values of the first way field generator (320) or the second way field generator (330) as the way field (WR) according to the power control signal (PCS). For example, if the power control signal (PCS) is the first power control signal (PCS1), the way field selector (340) can output the output values of the first way field generator (320). The first power control signal (PCS1) can instruct to supply power to the first and second banks (230_1, 230_2). If the power control signal (PCS) is the second power control signal (PCS2), the way field selector (340) can output the output values of the second way field generator (330). The second power control signal (PCS2) can instruct to supply power only to the second bank (230_2).
도시되지 않았지만, 다른 실시예에서, 웨이 선택기(300)는, 캐시 컨트롤러(210)와 유사하게, 복수의 해시 함수들 중 전력 제어 신호(PCS)에 따라 어느 하나의 해시 함수를 선택하고, 선택된 해시 함수 및 어드레스(ADD)를 기초로 웨이 정보를 출력할 수도 있다.Although not shown, in another embodiment, the way selector (300) may, similarly to the cache controller (210), select one of the hash functions among a plurality of hash functions according to a power control signal (PCS), and output way information based on the selected hash function and an address (ADD).
도 14, 도 15, 및 도 16은 본 개시의 다른 일부 실시예들에 따른 전자 장치의 동작을 설명하기 위한 도면들이다.FIGS. 14, 15, and 16 are drawings for explaining the operation of an electronic device according to some other embodiments of the present disclosure.
도 14, 도 15, 및 도 16을 참조하면, 전자 장치(400)는 뱅크 구조가 적용된 적용한 캐시(cache)를 포함할 수 있다. 전자 장치(400)에 포함된 캐시는, 복수의 해시 함수(410, 430), 복수의 중재자들(420, 440), 및 복수의 뱅크들(450, 460)을 포함할 수 있다. 실시예에 따라, 해시 함수(410) 및 중재자(420)는 캐시의 외부에 구현될 수 있다. 전자 장치(400)에 포함된 캐시는, 요청 중재 로직(request arbitration logic)을 통해 캐시 라인의 어드레스를 기반으로 해시 펑셔닝을 수행하여 어느 뱅크에 어드레스(또는 캐시 라인)를 할당할 것인지를 결정하게 된다. 이에 따르면, 어드레스 패턴(address pattern)에 따라 할당되는 뱅크가 구분될 수 있다. 뱅크 일부가 파워 오프(power off)되면, 해당 뱅크에 할당된 캐시 라인들이 파워 온(power on)된 다른 뱅크에 할당되도록, 요청 중재 로직이 바뀔 수 있다. 이때, 파워 오프의 대상이 되는 뱅크의 캐시 라인들이 플러쉬됨으로써, 변경된 정보가 캐시에 갱신될 수 있다. 한편, 파워 오프된 뱅크가 다시 파워 온되면, 기존에 파워 온된 다른 뱅크에 어드레스가 할당되도록 하는 요청 중재 로직이 원래대로 복원될 수 있다. 이때 기존에 파워 온된 다른 뱅크의 캐시 라인들 중에서 새로 파워 온된 뱅크에 할당되어야 할 캐시 라인들이 플러쉬되어야, 이후 캐시의 정상 동작이 보장될 수 있다. 해당 캐시 라인들을 찾는 동작의 복잡도가 높을 수 있으므로, 복잡도를 개선하기 위해 파워 온된 뱅크를 모두 플러쉬하는 방법이 이용될 수 있다. 뱅크들은, 어드레스의 값이 CPU 슬레이브(slave) 및 마스터 포트(Master port)에 하드와이어(hardwired)로 고정된 해시 함수들에 인가되어 나온 결과값을 통해 선택될 수 있다. 예를 들면, 하나의 뱅크의 전원만이 켜지는 모드, 또는 절반의 뱅크의 전원만이 켜지는 모드, 또는 모든 뱅크의 전원이 켜지는 모드가 선택될 수 있다. 특정 뱅크에 포함된 대체 로직(replacement logic)에 CPU 슬레이브 및 마스터 포트에 하드와이어로 고정된 해시 함수들 중 선택된 모드에 따라서 특정 해시 함수의 결과가 가리키는 뱅크가, 특정 뱅크와 다른 경우, 미리 지정된 웨이들만 선택될 수 있다. Referring to FIGS. 14, 15, and 16, the electronic device (400) may include an applied cache having a bank structure. The cache included in the electronic device (400) may include a plurality of hash functions (410, 430), a plurality of arbitrators (420, 440), and a plurality of banks (450, 460). According to an embodiment, the hash function (410) and the arbitrator (420) may be implemented outside the cache. The cache included in the electronic device (400) performs hash functioning based on an address of a cache line through request arbitration logic to determine which bank to allocate an address (or cache line). Accordingly, a bank to be allocated may be distinguished according to an address pattern. When a part of a bank is powered off, the request arbitration logic can be changed so that the cache lines assigned to the corresponding bank are assigned to other banks that are powered on. At this time, the cache lines of the bank that is the target of the power-off are flushed, so that the changed information can be updated in the cache. Meanwhile, when the powered-off bank is powered on again, the request arbitration logic that assigns the address to other banks that were previously powered on can be restored to its original state. At this time, among the cache lines of other banks that were previously powered on, the cache lines that should be allocated to the newly powered-on bank must be flushed, so that normal operation of the cache can be guaranteed thereafter. Since the complexity of the operation of finding the corresponding cache lines can be high, a method of flushing all the powered-on banks can be used to improve the complexity. The banks can be selected through the results of applying the values of the address to hash functions that are hardwired to the CPU slave and master ports. For example, a mode may be selected where only one bank is powered on, or where only half of the banks are powered on, or where all banks are powered on. Depending on the mode selected among the hash functions hardwired to the CPU slave and master ports in the replacement logic included in a particular bank, only pre-designated ways may be selected if the bank pointed to by the result of a particular hash function is different from the particular bank.
도 14를 참조하면, 요청된 트랜잭션(requested transaction)의 어드레스(411)가 해시 함수(410)에 입력되면, 해시 함수(410) 및 중재기(420)는 해당 트랜잭션이 뱅크 0(450) 및 뱅크 1(460) 중 어느 뱅크로 중재(arbitration)될 지 결정할 수 있다. 일 실시예에서, 해시 함수(410) 및 중재기(420)는 도 1의 캐시 메모리(121)에 포함될 수 있다. 하지만, 이에 한정되는 것은 아니다. 다른 실시예에서, 해시 함수(410) 및 중재기(420)는 전자 장치(400)의 브릿지에 구현될 수 있다. 해시 함수(410) 및 중재기(420)에 의해, 어드레스 그룹 A(Address group A, 421)는 뱅크 0(450)으로 중재 및 전달될 수 있고, 어드레스 그룹 B(Address group B, 422)는 뱅크 1(460)로 중재 및 전달될 수 있다. 뱅크 0(450)으로 중재(arbitration)된 어드레스 그룹 A(421)는 해시 함수(430) 및 중재기(440)에 의해 다시 한 번 중재(arbitration)될 수 있다. 뱅크 1(460)이 파워 온(power on)의 상태일 경우, 어드레스 그룹 A(441)는 뱅크 0(450)에 포함된 웨이들(Way0, Way1, Way2, Way3) 모두에 할당(allocation)될 수 있다. 어드레스 그룹 B(442)는 뱅크 0(450)에 할당되지 못한다. 뱅크 1(460)을 파워 오프할 것을 지시하는 정보(412)가 전자 장치(400)에 입력되면, 뱅크 1(460)에 저장된 캐시 라인들은 플러쉬될 수 있다.Referring to FIG. 14, when an address (411) of a requested transaction is input into a hash function (410), the hash function (410) and the arbitrator (420) can determine which bank the corresponding transaction will be arbitrated to among bank 0 (450) and bank 1 (460). In one embodiment, the hash function (410) and the arbitrator (420) may be included in the cache memory (121) of FIG. 1. However, the present invention is not limited thereto. In another embodiment, the hash function (410) and the arbitrator (420) may be implemented in a bridge of the electronic device (400). By means of the hash function (410) and the arbitrator (420), address group A (Address group A, 421) can be arbitrated and transferred to bank 0 (450), and address group B (Address group B, 422) can be arbitrated and transferred to bank 1 (460). Address group A (421) arbitrated to bank 0 (450) can be arbitrated again by the hash function (430) and the arbitrator (440). When bank 1 (460) is in a powered-on state, address group A (441) can be allocated to all of the ways (Way0, Way1, Way2, Way3) included in bank 0 (450). Address group B (442) cannot be allocated to bank 0 (450). When information (412) instructing to power off bank 1 (460) is input to the electronic device (400), the cache lines stored in bank 1 (460) can be flushed.
도 15를 참조하면, 뱅크 1(460)이 파워 오프됨을 나타내는 정보(412)가 해시 함수(410) 및 해시 함수(430)에 전달될 수 있다. 어드레스 그룹 B(424)는 뱅크 1(460)으로 중재되지 않고 뱅크 0(450)으로 중재 및 전달될 수 있다. 즉, 어드레스 그룹 A 및 B(423)은 뱅크 0(450)으로 중재 및 전달될 수 있다. 해시 함수(430) 및 중재기(440)에 의해, 어드레스 그룹 A(441)는 뱅크 0(450)에 포함된 웨이들(Way0, Way1, Way2, Way3) 모두에 할당될 수 있고, 어드레스 그룹 B(443)는 미리 정의 된 일부 웨이들(Way2, Way3)에 할당될 수 있다. 어드레스 그룹 B(443)는 일부 웨이들(Way2, Way3)에서만 관리될 수 있다.Referring to FIG. 15, information (412) indicating that bank 1 (460) is powered off may be transmitted to the hash function (410) and the hash function (430). Address group B (424) may be arbitrated and transmitted to bank 0 (450) without being arbitrated to bank 1 (460). That is, address groups A and B (423) may be arbitrated and transmitted to bank 0 (450). By the hash function (430) and the arbitrator (440), address group A (441) may be assigned to all of the ways (Way0, Way1, Way2, Way3) included in bank 0 (450), and address group B (443) may be assigned to some predefined ways (Way2, Way3). Address group B (443) may be managed only in some ways (Way2, Way3).
도 16을 참조하면, 뱅크 1(460)을 파워 온할 것을 지시하는 정보(413)가 전자 장치(400)에 입력될 수 있다. 이 경우, 해시 함수(410) 및 중재자(420)가 더 이상 어드레스 그룹 B(442)를 뱅크 0(450)으로 전달하지 못하므로, 뱅크 0(450)에 저장된 모든 캐시 라인들 들 중 어드레스 그룹 B에 해당하는 캐시 라인들은 모두 플러쉬되어야 한다. 예를 들면, 미리 정의 된 일부 웨이들(Way2, Way3)에 저장된 캐시 라인들만 읽힐 수 있다. 그리고, 태그를 통해 해당 캐시 라인들에 저장된 어드레스가 어드레스 그룹 B에 해당되는지 여부가 확인될 수 있다. 그리고, 해당 캐시 라인들이 플러쉬될 수 있다. 하지만, 이에 한정되는 것은 아니며, 처리 속도를 증가시키기 위해 태그를 이용해 어드레스를 확인하는 과정이 생략될 수도 있다.Referring to FIG. 16, information (413) instructing to power on bank 1 (460) may be input to the electronic device (400). In this case, since the hash function (410) and the arbitrator (420) can no longer transfer address group B (442) to bank 0 (450), all cache lines corresponding to address group B among all cache lines stored in bank 0 (450) must be flushed. For example, only cache lines stored in some predefined ways (Way2, Way3) may be read. Then, it may be checked through a tag whether an address stored in the corresponding cache lines corresponds to address group B. Then, the corresponding cache lines may be flushed. However, the present invention is not limited thereto, and the process of checking the address using the tag may be omitted in order to increase the processing speed.
전술한 실시예들에 의하면, 특정 뱅크와는 다른 뱅크로 캐시 라인을 할당하기 위한 웨이의 개수를 미리 설정하고, 특정 뱅크가 파워 오프(power off)에서 파워 온(power on)으로 트랜지션(transition)되는 경우에 다른 뱅크에서 미리 설정된 웨이만을 플러쉬함으로써, 성능 저하를 개선하는 효과, 응답 시간을 줄이는 효과, 플러쉬의 동작 시간을 줄이는 효과, 및 소비 전력을 절감할 수 있는 효과가 있다.According to the above-described embodiments, by presetting the number of ways for allocating a cache line to a bank other than a specific bank and flushing only the preset ways in the other bank when the specific bank transitions from power off to power on, there is an effect of improving performance degradation, reducing response time, reducing flushing operation time, and reducing power consumption.
도 17은 본 개시의 예시적인 실시예들에 따른 캐시 히트 동작 및 캐시 미스 동작을 설명하기 위한 흐름도이다.FIG. 17 is a flowchart illustrating a cache hit operation and a cache miss operation according to exemplary embodiments of the present disclosure.
도 17을 참조하면, 단계 S310에서, 메모리 장치는 트랜잭션 요청들을 수신한다. 단계 S320에서, 메모리 장치는 캐시 히트/미스를 체크한다. 단계 S330에서, 메모리 장치는 트랜잭션 요청이 캐시 히트인지 판단한다. 트랜잭션 요청이 캐시 히트면(S330, Yes), 단계 S340에서, 메모리 장치는 캐시 라인 히트에 대해 트랜잭션 요청을 처리한다. 트랜잭션 요청이 캐시 미스면(S330, No), 단계 S350에서, 메모리 장치는 모든 뱅크들이 전원이 켜져있을 때 사용되는 해시 함수를 이용하여 어드레스 그룹을 확인한다. 단계 S360에서, 메모리 장치는 해당 요청의 어드레스 그룹이 해당 뱅크에 대한 어드레스 그룹인지 여부를 판단한다. 해당 요청의 어드레스 그룹이 해당 뱅크에 대한 어드레스 그룹이면(S360, Yes), 단계 S370에서, 메모리 장치는 모든 웨이들에서 빅팀 라인(victim line)을 선택한다. 빅팀 라인은, 캐시 미스가 발생한 경우에 하위 계층의 메모리 또는 스토리지에 저장된 데이터를 저장할 캐시 라인일 수 있다. 해당 요청의 어드레스 그룹이 해당 뱅크에 대한 어드레스 그룹이 아니면(S360, No), 메모리 장치는 사전에 정의된 웨이들에서 빅팀 라인을 선택한다. 단계 S390에서, 메모리 장치는 선택된 빅팀 라인에 대해 캐시 미스 동작을 수행할 수 있다.Referring to FIG. 17, in step S310, the memory device receives transaction requests. In step S320, the memory device checks for a cache hit/miss. In step S330, the memory device determines whether the transaction request is a cache hit. If the transaction request is a cache hit (S330, Yes), in step S340, the memory device processes the transaction request for a cache line hit. If the transaction request is a cache miss (S330, No), in step S350, the memory device checks the address group using a hash function used when all banks are powered on. In step S360, the memory device determines whether the address group of the request is an address group for the bank. If the address group of the request is an address group for the bank (S360, Yes), in step S370, the memory device selects a victim line from all ways. The victim line may be a cache line for storing data stored in a lower-layer memory or storage when a cache miss occurs. If the address group of the corresponding request is not an address group for the corresponding bank (S360, No), the memory device selects a victim line from the predefined ways. In step S390, the memory device can perform a cache miss operation for the selected victim line.
도 18은 본 개시의 예시적인 실시예에 따른 뱅크의 블록도이다.FIG. 18 is a block diagram of a bank according to an exemplary embodiment of the present disclosure.
도 18을 참조하면, 뱅크(500)는, 쓰기 동작 시, 커맨드(CMD), 어드레스(ADDR), 클럭(CLK), 및 입력 데이터(DATA_IN)를 수신할 수 있다. 예를 들면, 뱅크(500)는, 쓰기(write)를 지시하는 커맨드(CMD), 어드레스(ADDR) 및 입력 데이터(DATA_IN)를 수신하고, 메모리 셀 어레이(510)에서 어드레스(ADDR)에 대응하는 메모리 셀 영역에 입력 데이터(DATA_IN)를 저장할 수 있다. 본 개시의 일 실시예에 따른 뱅크(500)는, 읽기 동작 시, 커맨드(CMD), 어드레스(ADDR), 및 클럭(CLK)을 수신할 수 있다. 예를 들면, 뱅크(500)는 읽기(read)를 지시하는 커맨드(CMD) 및 어드레스(ADDR)를 수신하고, 어드레스(ADDR)에 대응하는 메모리 셀 영역에 저장된 데이터를 읽고, 리드된 데이터를 출력 데이터(DATA_OUT)로서 외부에 출력할 수 있다. Referring to FIG. 18, the bank (500) may receive a command (CMD), an address (ADDR), a clock (CLK), and input data (DATA_IN) during a write operation. For example, the bank (500) may receive a command (CMD), an address (ADDR), and input data (DATA_IN) instructing a write operation, and store the input data (DATA_IN) in a memory cell area corresponding to the address (ADDR) in the memory cell array (510). The bank (500) according to one embodiment of the present disclosure may receive a command (CMD), an address (ADDR), and a clock (CLK) during a read operation. For example, the bank (500) may receive a command (CMD) and an address (ADDR) instructing a read operation, read data stored in a memory cell area corresponding to the address (ADDR), and output the read data to the outside as output data (DATA_OUT).
일 실시예에서, 뱅크(500)는 메모리 셀 어레이(510), 컬럼 디코더(520), 로우 디코더(530), 라이트 드라이버/센스 증폭기(540), 입출력 회로(550), 및 컨트롤 로직(560)을 포함할 수 있다.In one embodiment, a bank (500) may include a memory cell array (510), a column decoder (520), a row decoder (530), a light driver/sense amplifier (540), input/output circuitry (550), and control logic (560).
메모리 셀 어레이(510)는 복수의 메모리 셀들(511)을 포함할 수 있다. 복수의 메모리 셀들(511)은 워드 라인들(WLs)과 비트 라인들(BLs)이 교차하는 지점에 배치될 수 있다. 컬럼 디코더(520)는 컬럼 어드레스(CA)에 기초하여, 복수의 비트 라인들(BLs) 중 적어도 하나의 비트 라인을 선택할 수 있다. 로우 디코더(530)는 로우 어드레스(RA)에 기초하여, 복수의 워드 라인들(WLs) 중 적어도 하나의 워드 라인을 활성화할 수 있다. 즉, 로우 디코더(530)는 복수의 워드 라인들(WLs) 중 적어도 어느 하나의 워드 라인을 선택할 수 있다. The memory cell array (510) may include a plurality of memory cells (511). The plurality of memory cells (511) may be arranged at points where word lines (WLs) and bit lines (BLs) intersect. The column decoder (520) may select at least one bit line among the plurality of bit lines (BLs) based on a column address (CA). The row decoder (530) may activate at least one word line among the plurality of word lines (WLs) based on a row address (RA). That is, the row decoder (530) may select at least one word line among the plurality of word lines (WLs).
라이트 드라이버/센스 증폭기(540)는, 쓰기 동작 시, 입출력 회로(550)로부터 전달된 입력 데이터(DATA_IN)를 컬럼 디코더(520)에 전달할 수 있다. 또는 라이트 드라이버/센스 증폭기(540)는, 읽기 동작 시, 컬럼 디코더(520)로부터 전달된 데이터를 증폭하여 출력 데이터(DATA_OUT)를 입출력 회로(550)에 전달할 수 있다. 입출력 회로(550)는 입력 데이터(DATA_IN)를 라이트 드라이버/센스 증폭기(540)에 전달할 수 있다. 또는, 입출력 회로(550)는 라이트 드라이버/센스 증폭기(540)로부터 전달된 출력 데이터(DATA_OUT)를 출력할 수 있다.The write driver/sense amplifier (540) can transmit input data (DATA_IN) transmitted from the input/output circuit (550) to the column decoder (520) during a write operation. Alternatively, the write driver/sense amplifier (540) can amplify data transmitted from the column decoder (520) during a read operation and transmit output data (DATA_OUT) to the input/output circuit (550). The input/output circuit (550) can transmit input data (DATA_IN) to the write driver/sense amplifier (540). Alternatively, the input/output circuit (550) can output output data (DATA_OUT) transmitted from the write driver/sense amplifier (540).
컨트롤 로직(560)은 커맨드(CMD), 어드레스(ADDR) 및 클럭(CLK)을 수신할 수 있고, 로우 어드레스(RA), 컬럼 어드레스(CA) 및 제어 신호(CTR)를 생성할 수 있다. 예를 들면, 컨트롤 로직(560)은 커맨드(CMD)를 디코딩함으로써 리드 커맨드를 식별할 수 있고, 메모리 셀 어레이(510)로부터 출력 데이터(DATA_OUT)를 리드하기 위하여 로우 어드레스(RA), 컬럼 어드레스(CA) 및 제어 신호(CTR)를 생성할 수 있다. 또한, 컨트롤 로직(560)은 커맨드(CMD)를 디코딩함으로써 라이트 커맨드를 식별할 수 있고, 메모리 셀 어레이(510)에 입력 데이터(DATA_IN)를 기입하기 위하여 로우 어드레스(RA), 컬럼 어드레스(CA) 및 제어 신호(CTR)를 생성할 수 있다.The control logic (560) can receive a command (CMD), an address (ADDR), and a clock (CLK), and can generate a row address (RA), a column address (CA), and a control signal (CTR). For example, the control logic (560) can identify a read command by decoding the command (CMD), and can generate a row address (RA), a column address (CA), and a control signal (CTR) to read output data (DATA_OUT) from the memory cell array (510). In addition, the control logic (560) can identify a write command by decoding the command (CMD), and can generate a row address (RA), a column address (CA), and a control signal (CTR) to write input data (DATA_IN) to the memory cell array (510).
도 19는 본 개시의 예시적인 실시예에 따른 메모리 셀의 회로도이다.FIG. 19 is a circuit diagram of a memory cell according to an exemplary embodiment of the present disclosure.
도 19를 참조하면, 뱅크(500)가 SRAM에 포함되는 경우, 메모리 셀(MC)은 6 개의 트랜지스터들로 구성된 SRAM 셀일 수 있다. 메모리 셀(MC)은 6T SRAM 셀로 지칭될 수 있다. 메모리 셀(MC)은 제1 및 제2 PMOS 트랜지스터들(P1, P2)과 제1 내지 제4 NMOS 트랜지스터들(N1, N2, N3, N4)을 포함할 수 있다. 제1 및 제2 PMOS 트랜지스터들(P1, P2)은 전원 전압(VDD) 라인과 제1 노드(A) 및 제2 노드(B) 사이에 각각 연결될 수 있다. 제1 및 제2 NMOS 트랜지스터들(N1, N2)은 접지 전압(VSS) 라인과 제1 노드(A) 및 제2 노드(B) 사이에 각각 연결될 수 있다. 제1 노드(A)는 제2 PMOS 트랜지스터(P2) 및 제2 NMOS 트랜지스터(N2) 각각의 게이트에 연결될 수 있다. 제2 노드(B)는 제1 PMOS 트랜지스터(P1) 및 제1 NMOS 트랜지스터(N1) 각각의 게이트에 연결될 수 있다. 제1 노드(A) 및 제2 노드(B)는 제3 및 제4 NMOS 트랜지스터들(N3, N4)에 의해 비트 라인(BL)과 상보 비트 라인(/BL) 각각과 연결될 수 있다. 제3 및 제4 NMOS 트랜지스터들(N3, N4)의 게이트들은 워드 라인(WL)에 연결될 수 있다. 제3 및 제4 NMOS 트랜지스터들(N3, N4)은 액세스 트랜지스터들 또는 패스 트랜지스터들로 지칭될 수 있다. 메모리 셀(MC)은 제1 노드(A) 및 제2 노드(B)에 데이터 및 상보 데이터를 저장하고, 이를 래치한 상태를 유지할 수 있다. 구체적으로, 워드 라인(WL)이 쓰기 동작에서 인에이블되면, 제3 및 제4 NMOS 트랜지스터들(N3, N4)을 통하여 비트 라인(BL)과 상보 비트 라인(/BL)으로 전달되는 데이터 및 상보 데이터가 제1 노드(A) 및 제2 노드(B)에 래치될 수 있다. 한편, 메모리 셀(MC)은, 워드 라인(WL)이 읽기 동작에서 인에이블되면, 제1 노드(A) 및 제2 노드(B)에 래치된 데이터가 제3 및 제4 NMOS 트랜지스터들(N3, N4)을 통하여 비트 라인(BL)과 상보 비트 라인(/BL)으로 전달될 수 있다. 다른 실시예에서, 메모리 셀(MC)은 제1 인버터와 제2 인버터를 포함할 수 있다. 제1 인버터는 제1 PMOS 트랜지스터(P1) 및 제1 NMOS 트랜지스터(N1)로 구성될 수 있다. 제2 인버터는 제2 PMOS 트랜지스터(P2) 및 제2 NMOS 트랜지스터(N2)로 구성될 수 있다.Referring to FIG. 19, when the bank (500) is included in the SRAM, the memory cell (MC) may be an SRAM cell composed of 6 transistors. The memory cell (MC) may be referred to as a 6T SRAM cell. The memory cell (MC) may include first and second PMOS transistors (P1, P2) and first to fourth NMOS transistors (N1, N2, N3, N4). The first and second PMOS transistors (P1, P2) may be connected between a power supply voltage (VDD) line and a first node (A) and a second node (B), respectively. The first and second NMOS transistors (N1, N2) may be connected between a ground voltage (VSS) line and the first node (A) and the second node (B), respectively. The first node (A) may be connected to the gates of each of the second PMOS transistor (P2) and the second NMOS transistor (N2). The second node (B) may be connected to the gates of the first PMOS transistor (P1) and the first NMOS transistor (N1), respectively. The first node (A) and the second node (B) may be connected to the bit line (BL) and the complementary bit line (/BL) by the third and fourth NMOS transistors (N3, N4), respectively. The gates of the third and fourth NMOS transistors (N3, N4) may be connected to the word line (WL). The third and fourth NMOS transistors (N3, N4) may be referred to as access transistors or pass transistors. The memory cell (MC) may store data and complementary data in the first node (A) and the second node (B), and maintain the latched state thereof. Specifically, when the word line (WL) is enabled in a write operation, data and complementary data transferred to the bit line (BL) and the complementary bit line (/BL) through the third and fourth NMOS transistors (N3, N4) can be latched at the first node (A) and the second node (B). Meanwhile, in the memory cell (MC), when the word line (WL) is enabled in a read operation, data latched at the first node (A) and the second node (B) can be transferred to the bit line (BL) and the complementary bit line (/BL) through the third and fourth NMOS transistors (N3, N4). In another embodiment, the memory cell (MC) may include a first inverter and a second inverter. The first inverter may be composed of a first PMOS transistor (P1) and a first NMOS transistor (N1). The second inverter may be composed of a second PMOS transistor (P2) and a second NMOS transistor (N2).
도 20은 본 개시의 예시적인 실시예들에 따른 전자 장치의 동작 방법을 설명하기 위한 흐름도이다.FIG. 20 is a flowchart illustrating a method of operating an electronic device according to exemplary embodiments of the present disclosure.
도 20을 참조하면, 전자 장치의 동작 방법은, 전력 제어 신호를 수신하는 단계(S1000), 뱅크 그룹을 선택하는 단계(S2000), 및 선택된 뱅크 그룹에 트랜잭션을 전달하는 단계(S3000)을 포함할 수 있다.Referring to FIG. 20, the operating method of the electronic device may include a step of receiving a power control signal (S1000), a step of selecting a bank group (S2000), and a step of transmitting a transaction to the selected bank group (S3000).
단계 S1000에서, 전자 장치는, 독립적으로 동작 가능한 복수의 뱅크들 중 적어도 하나의 뱅크를 포함하는 제1 뱅크 그룹에 전력의 공급 여부를 지시하는 전력 제어 신호를 수신한다.In step S1000, the electronic device receives a power control signal instructing whether to supply power to a first bank group including at least one bank among a plurality of independently operable banks.
단계 S2000에서, 전자 장치는, 어드레스를 포함하는 트랜잭션 및 전력 제어 신호를 기초로, 제1 뱅크 그룹 또는 복수의 뱅크들 중 제1 뱅크 그룹을 제외한 제2 뱅크 그룹을 선택한다.In step S2000, the electronic device selects a first bank group or a second bank group excluding the first bank group among a plurality of banks based on a transaction and power control signal including an address.
단계 S3000에서, 전자 장치는, 트랜잭션 및 전력 제어 신호를 기초로 선택된 뱅크 그룹에 트랜잭션을 전달한다.In step S3000, the electronic device transmits a transaction to a selected bank group based on the transaction and power control signals.
일 실시예에서, 단계 S1000에서, 제1 뱅크 그룹에 전력의 공급을 중단할 것을 지시하는 제1 전력 제어 신호가 메모리 장치(120)에 전송될 수 있다. 단계 S2000는, 메모리 장치(120)가 제1 뱅크 그룹에 대응되는 제1 어드레스를 포함하는 제1 트랜잭션, 및 제1 전력 제어 신호를 기초로, 제2 뱅크 그룹에 포함되는 적어도 하나의 뱅크를 지시하는 타겟을 출력하는 단계, 및 메모리 장치(120)가 제1 트랜잭션 및 타겟을 기초로, 제2 뱅크 그룹의 적어도 하나의 뱅크에 포함된 웨이를 선택하는 단계를 포함할 수 있다. 이때, 전자 장치의 동작 방법은, 제1 뱅크 그룹을 플러쉬하는 단계를 더 포함할 수 있다.In one embodiment, in step S1000, a first power control signal instructing to stop supplying power to a first bank group may be transmitted to the memory device (120). Step S2000 may include a step in which the memory device (120) outputs a first transaction including a first address corresponding to the first bank group, and a target instructing at least one bank included in a second bank group based on the first power control signal, and a step in which the memory device (120) selects a way included in at least one bank of the second bank group based on the first transaction and the target. At this time, the operating method of the electronic device may further include a step of flushing the first bank group.
다른 실시예에서, 단계 S1000에서, 제1 뱅크 그룹에 전력을 공급할 것을 지시하는 제2 전력 제어 신호가 메모리 장치(120)에 전송될 수 있다. 단계 S2000는, 메모리 장치(120)가 제1 뱅크 그룹에 대응되는 제1 어드레스를 포함하는 제1 트랜잭션, 및 제2 전력 제어 신호를 기초로, 제1 뱅크 그룹에 포함되는 적어도 하나의 뱅크를 지시하는 타겟을 출력하는 단계, 및 메모리 장치(120)가 제1 트랜잭션 및 타겟을 기초로, 제1 뱅크 그룹의 적어도 하나의 뱅크에 포함된 웨이를 선택하는 단계를 포함할 수 있다. 이때, 전자 장치의 동작 방법은, 제2 뱅크 그룹을 플러쉬하는 단계를 더 포함할 수 있다.In another embodiment, in step S1000, a second power control signal instructing to supply power to the first bank group may be transmitted to the memory device (120). Step S2000 may include a step in which the memory device (120) outputs a target instructing at least one bank included in the first bank group based on a first transaction including a first address corresponding to the first bank group and the second power control signal, and a step in which the memory device (120) selects a way included in at least one bank of the first bank group based on the first transaction and the target. At this time, the operating method of the electronic device may further include a step of flushing the second bank group.
본 개시의 범위 또는 기술적 사상을 벗어나지 않고 본 개시의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 개시의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 개시가 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.It will be apparent to those skilled in the art that the structure of the present disclosure may be variously modified or changed without departing from the scope or technical spirit of the present disclosure. In view of the foregoing, if the modifications and variations of the present disclosure fall within the scope of the following claims and their equivalents, the present disclosure is deemed to include the modifications and variations of this invention.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, exemplary embodiments have been disclosed in the drawings and the specification. Although specific terms have been used in the specification to describe the embodiments, these have been used only for the purpose of explaining the technical idea of the present disclosure and have not been used to limit the meaning or the scope of the present disclosure described in the claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible from this. Accordingly, the true technical protection scope of the present disclosure should be determined by the technical idea of the appended claims.
Claims (20)
상기 전력을 공급받아 제2 어드레스에 대응되는 제2 캐시 라인을 저장하는 제2 웨이 그룹을 포함하는 제2 뱅크;
상기 제1 뱅크에 상기 전력의 공급을 중단할 것을 지시하는 전력 제어 신호, 및 상기 제1 어드레스를 기초로, 상기 제2 뱅크를 지시하는 제2 타겟을 출력하도록 구성된 캐시 컨트롤러; 및
상기 제1 어드레스, 상기 전력 제어 신호, 및 상기 제2 타겟을 기초로, 상기 제1 어드레스를 상기 제2 뱅크에 전달하도록 구성된 웨이 선택기를 포함하는, 메모리 장치.A first bank including a first way group that is powered and stores a first cache line corresponding to a first address;
A second bank including a second way group that receives the power and stores a second cache line corresponding to a second address;
A cache controller configured to output a power control signal instructing to stop supplying the power to the first bank, and a second target instructing the second bank based on the first address; and
A memory device comprising a way selector configured to transmit the first address to the second bank based on the first address, the power control signal, and the second target.
상기 캐시 컨트롤러는,
상기 제1 어드레스를 입력 받아 상기 제1 뱅크를 지시하는 제1 타겟을 출력하고 상기 제2 어드레스를 입력 받아 상기 제2 타겟을 출력하는 제1 해시 함수, 및 상기 제2 타겟을 출력하는 제2 해시 함수를 포함하고,
상기 제1 해시 함수 및 상기 제2 해시 함수 중 상기 전력 제어 신호에 응답하여 상기 제2 해시 함수를 선택하는 것을 특징으로 하는, 메모리 장치.In the first paragraph,
The above cache controller,
A first hash function that receives the first address and outputs a first target indicating the first bank, receives the second address and outputs the second target, and includes a second hash function that outputs the second target.
A memory device characterized in that the second hash function is selected in response to the power control signal among the first hash function and the second hash function.
상기 웨이 선택기는,
상기 제1 어드레스를 입력 받아 선택 신호를 출력하도록 구성된 해시 함수;
상기 선택 신호를 기초로 상기 제1 어드레스를 상기 제1 웨이 그룹에 맵핑하고 상기 제2 어드레스를 상기 제2 웨이 그룹에 맵핑하는 웨이 필드를 출력하도록 구성된 제1 웨이 필드 생성기;
상기 선택 신호를 기초로 상기 제1 어드레스를 상기 제2 웨이 그룹에서 미리 설정된 일부 웨이들에 맵핑하고 상기 제2 어드레스를 상기 제2 웨이 그룹에 맵핑하는 웨이 필드를 출력하도록 구성된 제2 웨이 필드 생성기; 및
상기 제1 웨이 필드 생성기 및 상기 제2 웨이 필드 생성기 중 상기 전력 제어 신호의 값에 따라 선택된 웨이 필드 생성기의 웨이 필드를 출력하도록 구성된 웨이 필드 선택기를 포함하는 것을 특징으로 하는, 메모리 장치.In the first paragraph,
The above way selector is,
A hash function configured to receive the first address and output a selection signal;
A first way field generator configured to output a way field that maps the first address to the first way group and maps the second address to the second way group based on the selection signal;
A second way field generator configured to output a way field that maps the first address to some preset ways in the second way group based on the selection signal and maps the second address to the second way group; and
A memory device characterized by including a way field selector configured to output a way field of a way field generator selected from among the first way field generator and the second way field generator according to the value of the power control signal.
상기 제1 웨이 필드 생성기는,
상기 제1 어드레스와 상기 제1 웨이 그룹 간의 맵핑 정보를 포함하는 비트 값들을 저장하는 제1 레지스터;
상기 제2 어드레스와 상기 제2 웨이 그룹 간의 맵핑 정보를 포함하는 비트 값들을 저장하는 제2 레지스터; 및
상기 제1 레지스터 및 상기 제2 레지스터 중 상기 선택 신호의 값에 따라 선택된 레지스터의 비트 값들을 출력하는 레지스터 선택기를 포함하는 것을 특징으로 하는, 메모리 장치.In the third paragraph,
The above first way field generator,
A first register storing bit values including mapping information between the first address and the first way group;
A second register storing bit values including mapping information between the second address and the second way group; and
A memory device characterized by including a register selector that outputs bit values of a register selected from among the first register and the second register according to the value of the selection signal.
상기 제2 웨이 필드 생성기는,
상기 제1 어드레스와 상기 미리 설정된 일부 웨이들 간의 맵핑 정보를 포함하는 비트 값들을 저장하는 제1 레지스터;
상기 제2 어드레스와 상기 제2 웨이 그룹 간의 맵핑 정보를 포함하는 비트 값들을 저장하는 제2 레지스터; 및
상기 제1 레지스터 및 상기 제2 레지스터 중 상기 선택 신호의 값에 따라 선택된 레지스터의 비트 값들을 출력하는 레지스터 선택기를 포함하는 것을 특징으로 하는, 메모리 장치.In the third paragraph,
The above second way field generator,
A first register storing bit values including mapping information between the first address and some of the preset ways;
A second register storing bit values including mapping information between the second address and the second way group; and
A memory device characterized by including a register selector that outputs bit values of a register selected from among the first register and the second register according to the value of the selection signal.
상기 캐시 컨트롤러는,
상기 전력 제어 신호에 응답하여, 상기 제1 캐시 라인을 플러쉬(flush)하도록 상기 제1 뱅크를 제어하는 것을 특징으로 하는, 메모리 장치.In the first paragraph,
The above cache controller,
A memory device characterized in that, in response to the power control signal, the first bank is controlled to flush the first cache line.
상기 캐시 컨트롤러는,
상기 제2 어드레스를 기초로, 상기 제2 타겟을 상기 웨이 선택기에 출력하고,
상기 웨이 선택기는,
상기 제2 타겟을 기초로 상기 제2 뱅크에 액세스하도록, 상기 제2 뱅크에 상기 제2 어드레스를 전달하는 것을 특징으로 하는, 메모리 장치.In the first paragraph,
The above cache controller,
Based on the second address, output the second target to the way selector,
The above way selector is,
A memory device characterized in that the second address is transmitted to the second bank so as to access the second bank based on the second target.
상기 웨이 선택기는, 상기 제2 뱅크에 포함되는 것을 특징으로 하는, 메모리 장치.In the first paragraph,
A memory device, characterized in that the way selector is included in the second bank.
전력을 공급받아 제1 어드레스에 대응되는 제1 캐시 라인 및 제2 어드레스에 대응되는 제2 캐시 라인을 저장하는 제2 웨이 그룹을 포함하는 제2 뱅크;
상기 제1 뱅크에 상기 전력을 공급할 것을 지시하는 전력 제어 신호, 및 상기 제1 어드레스를 기초로, 상기 제1 뱅크를 지시하는 제1 타겟을 출력하도록 구성된 캐시 컨트롤러; 및
상기 제1 어드레스, 상기 전력 제어 신호, 및 상기 제1 타겟을 기초로, 상기 제1 어드레스를 상기 제1 뱅크에 전달하도록 구성된 웨이 선택기를 포함하는, 메모리 장치.A first bank containing a first way group;
A second bank including a second way group that receives power and stores a first cache line corresponding to a first address and a second cache line corresponding to a second address;
A power control signal instructing to supply power to the first bank, and a cache controller configured to output a first target instructing the first bank based on the first address; and
A memory device comprising a way selector configured to transmit the first address to the first bank based on the first address, the power control signal, and the first target.
상기 캐시 컨트롤러는,
상기 전력 제어 신호에 응답하여, 상기 제1 웨이 그룹에 저장된 캐시 라인들을 무효(invalid)처리하도록 상기 제1 뱅크를 제어하는 것을 특징으로 하는, 메모리 장치.In Article 9,
The above cache controller,
A memory device characterized in that, in response to the power control signal, the first bank is controlled to invalidate cache lines stored in the first way group.
상기 캐시 컨트롤러는,
상기 전력 제어 신호에 응답하여, 상기 제2 웨이 그룹에 포함된 적어도 하나의 캐시 라인을 플러쉬(flush)하도록 상기 제2 뱅크를 제어하는 것을 특징으로 하는, 메모리 장치.In Article 9,
The above cache controller,
A memory device characterized in that, in response to the power control signal, the second bank is controlled to flush at least one cache line included in the second way group.
상기 캐시 컨트롤러는,
상기 제2 웨이 그룹에 포함된 모든 캐시 라인들을 플러쉬하도록 상기 제2 뱅크를 제어하는 것을 특징으로 하는, 메모리 장치.In Article 11,
The above cache controller,
A memory device characterized by controlling the second bank to flush all cache lines included in the second way group.
상기 캐시 컨트롤러는,
상기 제1 캐시 라인을 플러쉬하도록 상기 제2 뱅크를 제어하는 것을 특징으로 하는, 메모리 장치.In Article 11,
The above cache controller,
A memory device characterized by controlling the second bank to flush the first cache line.
상기 캐시 컨트롤러는,
상기 제1 어드레스를 입력 받아 상기 제1 타겟을 출력하고 상기 제2 어드레스를 입력 받아 상기 제2 뱅크를 지시하는 제2 타겟을 출력하는 제1 해시 함수, 및 상기 제2 타겟을 출력하는 제2 해시 함수를 포함하고,
상기 제1 해시 함수 및 상기 제2 해시 함수 중 상기 전력 제어 신호에 응답하여 상기 제1 해시 함수를 선택하는 것을 특징으로 하는, 메모리 장치.In Article 9,
The above cache controller,
A first hash function that receives the first address and outputs the first target, receives the second address and outputs the second target indicating the second bank, and a second hash function that outputs the second target,
A memory device characterized in that the first hash function is selected in response to the power control signal among the first hash function and the second hash function.
상기 웨이 선택기는,
상기 제1 어드레스를 입력 받아 선택 신호를 출력하도록 구성된 해시 함수;
상기 선택 신호를 기초로 상기 제1 어드레스를 상기 제1 뱅크에 맵핑하고 상기 제2 어드레스를 상기 제2 뱅크에 맵핑하는 웨이 필드를 출력하도록 구성된 제1 웨이 필드 생성기;
상기 선택 신호를 기초로 상기 제1 어드레스를 상기 제2 웨이 그룹에서 미리 설정된 일부 웨이들에 맵핑하고 상기 제2 어드레스를 상기 제2 웨이 그룹에 맵핑하는 웨이 필드를 출력하도록 구성된 제2 웨이 필드 생성기; 및
상기 제1 웨이 필드 생성기 및 상기 제2 웨이 필드 생성기 중 상기 전력 제어 신호의 값에 따라 선택된 웨이 필드 생성기의 웨이 필드를 출력하도록 구성된 웨이 필드 선택기를 포함하는 것을 특징으로 하는, 메모리 장치.In Article 9,
The above way selector is,
A hash function configured to receive the first address and output a selection signal;
A first way field generator configured to output a way field that maps the first address to the first bank and the second address to the second bank based on the selection signal;
A second way field generator configured to output a way field that maps the first address to some preset ways in the second way group based on the selection signal and maps the second address to the second way group; and
A memory device characterized by including a way field selector configured to output a way field of a way field generator selected from among the first way field generator and the second way field generator according to the value of the power control signal.
어드레스를 포함하는 트랜잭션 및 상기 전력 제어 신호를 기초로, 상기 제1 뱅크 그룹 또는 상기 복수의 뱅크들 중 상기 제1 뱅크 그룹에서 제외되고 상기 전력을 공급받는 적어도 하나의 뱅크를 포함하는 제2 뱅크 그룹을 선택하는 단계; 및
상기 트랜잭션 및 상기 전력 제어 신호를 기초로 상기 선택된 뱅크 그룹에 상기 트랜잭션을 전달하는 단계를 포함하는, 메모리 장치의 동작 방법.A step of receiving a power control signal instructing whether to supply power to a first bank group including at least one bank among a plurality of independently operable banks;
A step of selecting a second bank group including at least one bank that is excluded from the first bank group and supplied with power among the first bank group or the plurality of banks, based on a transaction including an address and the power control signal; and
A method of operating a memory device, comprising the step of transmitting the transaction to the selected bank group based on the transaction and the power control signal.
상기 전력 제어 신호를 수신하는 단계는,
상기 제1 뱅크 그룹에 상기 전력을 공급할 것을 지시하는 제1 전력 제어 신호를 수신하고,
상기 선택하는 단계는,
상기 제1 뱅크 그룹에 대응되는 제1 어드레스를 포함하는 제1 트랜잭션, 및 상기 제1 전력 제어 신호를 기초로, 상기 제1 뱅크 그룹에 포함되는 적어도 하나의 뱅크를 지시하는 타겟을 출력하는 단계; 및
상기 제1 트랜잭션 및 상기 타겟을 기초로, 상기 제1 뱅크 그룹의 상기 적어도 하나의 뱅크에 포함된 웨이를 선택하는 단계를 포함하는 것을 특징으로 하는, 메모리 장치의 동작 방법.In Article 16,
The step of receiving the above power control signal is:
receiving a first power control signal instructing to supply the power to the first bank group;
The above selection steps are:
A step of outputting a first transaction including a first address corresponding to the first bank group, and a target indicating at least one bank included in the first bank group based on the first power control signal; and
A method of operating a memory device, characterized by comprising the step of selecting a way included in at least one bank of the first bank group based on the first transaction and the target.
상기 제2 뱅크 그룹을 플러쉬하는 단계를 더 포함하는 것을 특징으로 하는, 메모리 장치의 동작 방법.In Article 17,
A method of operating a memory device, characterized in that it further comprises the step of flushing the second bank group.
상기 전력 제어 신호를 수신하는 단계는,
상기 제1 뱅크 그룹에 상기 전력의 공급을 중단할 것을 지시하는 제2 전력 제어 신호를 수신하고,
상기 선택하는 단계는,
상기 제1 뱅크 그룹에 대응되는 제1 어드레스를 포함하는 제1 트랜잭션, 및 상기 제2 전력 제어 신호를 기초로, 상기 제2 뱅크 그룹에 포함되는 적어도 하나의 뱅크를 지시하는 타겟을 출력하는 단계; 및
상기 제1 트랜잭션 및 상기 타겟을 기초로, 상기 제2 뱅크 그룹의 상기 적어도 하나의 뱅크에 포함된 웨이를 선택하는 단계를 포함하는 것을 특징으로 하는, 메모리 장치의 동작 방법.In Article 16,
The step of receiving the above power control signal is:
receiving a second power control signal instructing to stop supplying said power to said first bank group;
The above selection steps are:
A step of outputting a first transaction including a first address corresponding to the first bank group, and a target indicating at least one bank included in the second bank group based on the second power control signal; and
A method of operating a memory device, characterized by comprising the step of selecting a way included in at least one bank of the second bank group based on the first transaction and the target.
상기 제1 뱅크 그룹을 플러쉬하는 단계를 더 포함하는 것을 특징으로 하는, 메모리 장치의 동작 방법.In Article 19,
A method of operating a memory device, characterized in that it further comprises a step of flushing the first bank group.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411027762.0A CN119541578A (en) | 2023-08-31 | 2024-07-30 | Electronic device, storage device, and storage device operating method |
US18/802,266 US20250077427A1 (en) | 2023-08-31 | 2024-08-13 | Electronic device, memory device, and operating method of memory device |
TW113130581A TW202511962A (en) | 2023-08-31 | 2024-08-15 | Memory device and operating method thereof |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230115275 | 2023-08-31 | ||
KR20230115275 | 2023-08-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20250032780A true KR20250032780A (en) | 2025-03-07 |
Family
ID=94972630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230172727A Pending KR20250032780A (en) | 2023-08-31 | 2023-12-01 | Electronic device, memory device, and operating method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20250032780A (en) |
-
2023
- 2023-12-01 KR KR1020230172727A patent/KR20250032780A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12073871B2 (en) | Method of performing internal processing operation of memory device | |
US11709777B2 (en) | Memory system | |
US10592419B2 (en) | Memory system | |
CN101286144A (en) | Multi-path accessible semiconductor memory device | |
KR20090013342A (en) | Multi-port semiconductor memory device and refresh method accordingly | |
KR101430687B1 (en) | A multiprocessor system having a direct access booting operation and a direct access booting method | |
US20170147230A1 (en) | Memory device and memory system having heterogeneous memories | |
US10445003B2 (en) | Memory system for dualizing first memory based on operation mode | |
JP3789998B2 (en) | Memory built-in processor | |
CN111208939B (en) | Memory system and operation method thereof | |
US20170109067A1 (en) | Memory system | |
US20170109086A1 (en) | Memory system | |
US20170109071A1 (en) | Memory system | |
US6839807B2 (en) | Multi-way set associative cache memory | |
KR20250032780A (en) | Electronic device, memory device, and operating method thereof | |
KR102514717B1 (en) | Memory controller and memory system including the same | |
US20250077427A1 (en) | Electronic device, memory device, and operating method of memory device | |
US20250077437A1 (en) | Electronic devices, including memory devices, and operating methods thereof | |
KR20190127143A (en) | Semiconductor device | |
KR20250032774A (en) | Electronic device, memory device, and operating method thereof | |
US20250265203A1 (en) | Memory device and computing system including memory device | |
US11526448B2 (en) | Direct mapped caching scheme for a memory side cache that exhibits associativity in response to blocking from pinning | |
US20170109069A1 (en) | Memory system | |
US20170109068A1 (en) | Memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20231201 |
|
PG1501 | Laying open of application |