KR100539251B1 - 독출-변경-기입 기능을 가지는 메모리 컨트롤러 및 이를구비하는 soc - Google Patents

독출-변경-기입 기능을 가지는 메모리 컨트롤러 및 이를구비하는 soc Download PDF

Info

Publication number
KR100539251B1
KR100539251B1 KR10-2004-0015591A KR20040015591A KR100539251B1 KR 100539251 B1 KR100539251 B1 KR 100539251B1 KR 20040015591 A KR20040015591 A KR 20040015591A KR 100539251 B1 KR100539251 B1 KR 100539251B1
Authority
KR
South Korea
Prior art keywords
signal
data signal
read
data
memory
Prior art date
Application number
KR10-2004-0015591A
Other languages
English (en)
Other versions
KR20050090255A (ko
Inventor
조상연
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR10-2004-0015591A priority Critical patent/KR100539251B1/ko
Priority to US11/072,870 priority patent/US7299323B2/en
Publication of KR20050090255A publication Critical patent/KR20050090255A/ko
Application granted granted Critical
Publication of KR100539251B1 publication Critical patent/KR100539251B1/ko

Links

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F25REFRIGERATION OR COOLING; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS; MANUFACTURE OR STORAGE OF ICE; LIQUEFACTION SOLIDIFICATION OF GASES
    • F25BREFRIGERATION MACHINES, PLANTS OR SYSTEMS; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS
    • F25B13/00Compression machines, plants or systems, with reversible cycle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F25REFRIGERATION OR COOLING; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS; MANUFACTURE OR STORAGE OF ICE; LIQUEFACTION SOLIDIFICATION OF GASES
    • F25BREFRIGERATION MACHINES, PLANTS OR SYSTEMS; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS
    • F25B29/00Combined heating and refrigeration systems, e.g. operating alternately or simultaneously
    • F25B29/003Combined heating and refrigeration systems, e.g. operating alternately or simultaneously of the compression type system
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F25REFRIGERATION OR COOLING; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS; MANUFACTURE OR STORAGE OF ICE; LIQUEFACTION SOLIDIFICATION OF GASES
    • F25BREFRIGERATION MACHINES, PLANTS OR SYSTEMS; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS
    • F25B41/00Fluid-circulation arrangements
    • F25B41/30Expansion means; Dispositions thereof
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F25REFRIGERATION OR COOLING; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS; MANUFACTURE OR STORAGE OF ICE; LIQUEFACTION SOLIDIFICATION OF GASES
    • F25BREFRIGERATION MACHINES, PLANTS OR SYSTEMS; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS
    • F25B2400/00General features or devices for refrigeration machines, plants or systems, combined heating and refrigeration systems or heat-pump systems, i.e. not limited to a particular subgroup of F25B
    • F25B2400/05Compression system with heat exchange between particular parts of the system
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F25REFRIGERATION OR COOLING; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS; MANUFACTURE OR STORAGE OF ICE; LIQUEFACTION SOLIDIFICATION OF GASES
    • F25BREFRIGERATION MACHINES, PLANTS OR SYSTEMS; COMBINED HEATING AND REFRIGERATION SYSTEMS; HEAT PUMP SYSTEMS
    • F25B2600/00Control issues
    • F25B2600/25Control of valves
    • F25B2600/2519On-off valves
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Thermal Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

독출-변경-기입 기능을 가지는 메모리 컨트롤러 및 이를 구비하는 SOC가 개시된다. 본 발명에 의한 메모리 컨트롤러는 외부의 메모리와 연결되고, 시스템 버스를 통하여 IP(Intellectual property) 블록들 및 마이크로프로세서와 연결된다. 메모리 컨트롤러는 IP 블록들 중 어느 하나 또는 마이크로프로세서로부터 수신되는 독출 요청 신호, 기입 요청 신호, 및 변경 요청 신호 중 어느 하나와 어드레스 신호에 응답하여, 메모리로부터 데이터 신호를 독출하거나, 또는 메모리에 기입 데이터 신호를 기입하거나, 또는 메모리로부터 데이터 신호를 독출하여 변경하고, 그 변경된 데이터 신호를 메모리에 기입한다. 본 발명에 의한 메모리 컨트롤러와 이를 구비하는 SOC는 시스템 버스의 점유 시간을 감소시키고, 메모리의 액세스 시간을 단축시키고, 불필요한 전력 낭비를 막을 수 있는 장점이 있다.

Description

독출-변경-기입 기능을 가지는 메모리 컨트롤러 및 이를 구비하는 SOC{Memory controller with a read-modify-write function and SOC having the memory controller}
본 발명은 메모리 컨트롤러에 관한 것으로서, 특히, 시스템 버스를 기반으로 동작하는 SOC에 포함되는 메모리 컨트롤러에 관한 것이다.
일반적으로 SOC(System-On-Chip)는 외부의 메모리와 접속하기 위해 메모리 컨트롤러를 구비한다. SOC에 접속되는 외부의 메모리들로서는, 예를 들어, ROM, Flash 메모리와 같이, 주로 프로그램을 저장하는데 사용되는 비휘발성 메모리와, SRAM, SDRAM과 같이, 다용도로 사용되는 휘발성 메모리가 있다. 종래의 SOC의 일례가 미국 특허 제6,526,462호에 기재되어 있다.
도 1은 종래의 메모리 컨트롤러를 포함하는 SOC(10)와 외부 메모리(20)를 나타내는 블록도이다. 도 1을 참고하면, 상기 SOC(10)는 메모리 컨트롤러(12), IP(Intellectual property) 블록들(13, 14), 마이크로프로세서(15), 내부 메모리(16), 및 DMA(Direct Memory Access)(17)를 포함한다. 상기 SOC(10)는 추가의 IP 블록들과 추가의 기타 블록들을 더 포함할 수 있지만, 도면의 간략화를 위해 생략된다. 상기 메모리 컨트롤러(12), 상기 IP 블록들(13, 14), 상기 마이크로프로세서(15), 상기 내부 메모리(16), 및 상기 DMA(17)는 시스템 버스(11)에 연결되어 상호 통신한다. 한편, 상기 외부 메모리(20)에 저장된 데이터는 경우에 따라 수정될 필요가 있다. 이렇게 메모리에 저장된 데이터를 수정하여 다시 기입하는 동작을 수행하는 장치의 일례로서는 광 디스크 시스템의 ECC(Error correcting code) 처리기(미도시)가 있다. 상기 ECC 처리기는 메모리에 저장된 데이터들 중에서 에러 정정을 위한 데이터들을 독출하고, 독출된 데이터들과 계산된 에러 마스크 데이터들을 XOR 연산하여, 그 연산 결과를 상기 메모리에 다시 기입한다. 이러한 상기 ECC 처리기의 동작과 유사하게, 상기 SOC(10)내의 IP 블록들(13, 14) 중 어느 하나가 상기 외부 메모리(20)에 저장된 데이터를 독출하고, 독출된 데이터를 변경하여, 그 변경된 데이터를 상기 외부 메모리(20)에 다시 기입한다.
도 1에서는 상술한 동작들을 상기 IP 블록(13)이 수행하는 것으로 도시되어 있다. 상기 IP 블록(13)은 상기 시스템 버스(11)를 통하여 상기 메모리 컨트롤러(12)에 상기 외부 메모리(20)의 데이터 독출을 요청한다. 이 후, 상기 IP 블록(13)은 "A"로 표시된 것과 같이, 상기 시스템 버스(110)를 통하여 상기 외부 메모리(20)로부터 독출된 데이터(미도시)를 상기 메모리 컨트롤러(12)로부터 수신한다. 상기 IP 블록(13)은 상기 독출된 데이터를 변경하고, "B"로 표시된 것과 같이, 변경된 데이터(미도시)를 상기 시스템 버스(11)를 통하여 상기 메모리 컨트롤러(12)에 전송한다. 상기 메모리 컨트롤러(12)는 상기 시스템 버스(11)를 통하여 상기 IP 블록(13)으로부터 수신되는 상기 변경된 데이터를 상기 외부 메모리(20)에 기입한다.
여기에서, 상기 IP 블록(13)이 상기 시스템 버스(11)를 사용하기 위해서는 아비터(Arbiter)(미도시)로부터 상기 시스템 버스(11)의 사용권을 부여받아야 한다. 또, 상기 IP 블록(13)이 상기 외부 메모리(20)에 저장된 데이터를 독출하기 위해서는, 상기 IP 블록(13)이 상기 아비터로부터 상기 시스템 버스(11)의 사용권을 부여받고, 상기 메모리 컨트롤러(12)에 독출 어드레스 신호를 전송하고, 상기 메모리 컨트롤러(12)에 제어 데이터 신호를 전송하는 과정들이 필요하다. 또, 상기 IP 블록(13)이 상기 변경된 데이터를 상기 외부 메모리(20)에 기입하기 위해서는, 상기 IP 블록(13)이 상기 아비터로부터 상기 시스템 버스(11)의 사용권을 부여받고, 상기 메모리 컨트롤러(12)에 기입 어드레스 신호를 전송하고, 상기 메모리 컨트롤러(12)에 상기 변경된 데이터 신호를 전송하는 과정들이 필요하다.
상술한 것과 같이, 상기 외부 메모리(20)에 저장된 데이터 신호를 변경하는 과정 동안, 상기 IP 블록(13)은 상기 시스템 버스(11)를 두 번 점유하게 된다. 그 결과 상기 IP 블록(13)에 의한 상기 시스템 버스(11)의 점유 시간이 증가하게 되는 문제점이 있다. 결국, 상기 IP 블록(13)과 상기 메모리 컨트롤러(12)간의 데이터 전송이 완료될 때까지, 상기 SOC(10)내의 다른 장치들이 상기 시스템 버스(11)를 사용할 수 없게 되므로 전체적인 상기 SOC(10)의 성능이 저하된다. 또, 상기 외부 메모리(20)에 저장된 데이터 신호를 변경하는 과정 동안, 상기 IP 블록(13)과 상기 메모리 컨트롤러(12) 사이에서 두 번의 어드레스 신호의 전송 및 데이터 신호의 전송이 이루어져야 하므로 비효율적인 것이다.
본 발명이 이루고자하는 기술적 과제는, 메모리에 저장된 데이터를 독출하고, 변경하여 기입함으로써, 시스템 버스의 점유 시간을 감소시킬 수 있는 메모리 컨트롤러를 제공하는데 있다.
본 발명이 이루고자하는 다른 기술적 과제는, 메모리에 저장된 데이터를 독출하고, 변경하여 기입함으로써, 시스템 버스의 점유 시간을 감소시킬 수 있는 메모리 컨트롤러를 구비하는 SOC를 제공하는데 있다.
상기 기술적 과제를 달성하기 위한 본 발명에 따른 메모리 컨트롤러는 메모리와 연결되고, 시스템 버스를 통하여 IP(Intellectual property) 블록들 및 마이크로프로세서와 연결된다. 메모리 컨트롤러는 IP 블록들 중 어느 하나 또는 마이크로프로세서로부터 수신되는 독출 요청 신호, 기입 요청 신호, 및 변경 요청 신호 중 어느 하나와 어드레스 신호에 응답하여, 메모리로부터 데이터 신호를 독출하거나, 또는 메모리에 기입 데이터 신호를 기입하거나, 또는 메모리로부터 데이터 신호를 독출하여 변경하고, 그 변경된 데이터 신호를 메모리에 기입한다.
상기 다른 기술적 과제를 달성하기 위한 본 발명에 따른 메모리 컨트롤러를 포함하는 SOC는 마이크로프로세서, 내부 메모리, IP(Intellectual property) 블록들, 및 메모리 컨트롤러를 구비하는 것을 특징으로 한다. 마이크로프로세서는 시스템 버스에 연결되고, 시스템 버스에 연결되는 모든 장치들을 제어하고, 소정의 프로그램을 실행한다. 내부 메모리는 프로그램을 저장하거나 또는 마이크로프로세서의 동작 과정에서 발생되는 주요 데이터들을 저장한다. IP 블록들은 시스템 버스에 연결되어, 설정된 기능들을 각각 수행한다. 메모리 컨트롤러는 외부 메모리와 연결되고, 시스템 버스에 연결된다. 메모리 컨트롤러는 IP 블록들 중 어느 하나 또는 마이크로프로세서로부터 수신되는 독출 요청 신호, 기입 요청 신호, 및 변경 요청 신호 중 어느 하나와 어드레스 신호에 응답하여, 외부 메모리로부터 데이터 신호를 독출하거나, 또는 외부 메모리에 기입 데이터 신호를 기입하거나, 또는 외부 메모리로부터 데이터 신호를 독출하여 변경하고, 그 변경된 데이터 신호를 외부 메모리에 기입한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 2는 본 발명에 따른 메모리 컨트롤러(120)를 포함하는 SOC(100)와 외부 메모리(200)를 나타내는 블록도이다. 도 2를 참고하면, 상기 SOC(100)는 메모리 컨트롤러(120), IP 블록들(130, 140), 마이크로프로세서(150), 내부 메모리(160), 및 DMA(170)를 포함한다. 또, 상기 메모리 컨트롤러(120), 상기 IP 블록들(130, 140), 상기 마이크로프로세서(150), 상기 내부 메모리(160), 및 상기 DMA(170)는 시스템 버스(110)에 연결되고, 상기 시스템 버스(110)를 통하여 상호 통신한다. 상기 SOC(100)내에 포함되는 장치들 중에서 본 발명과 관련되지 않은 부분들의 구체적인 동작 설명은 생략된다. 상기 IP 블록들(130, 140) 또는 상기 마이크로프로세서(150)는 상기 시스템 버스(110)를 통하여 상기 메모리 컨트롤러(120)에 상기 외부 메모리(200)의 데이터 독출을 요청하거나 또는 데이터 기입을 요청하거나 또는 데이터 변경을 요청한다. 상기 메모리 컨트롤러(120)는 상기 IP 블록들(130, 140) 중 어느 하나 또는 상기 마이크로프로세서(150)로부터 요청된 상기 외부 메모리(200)의 제어 동작을 수행한다. 여기에서, 상기 메모리 컨트롤러(120)에 의한 상기 외부 메모리(200)의 데이터 독출 동작과 기입 동작은 본 발명의 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있으므로 이에 대한 상세한 설명은 생략된다. 또, 본 실시예에서는 상기 IP 블록(130)의 제어에 의해 상기 메모리 컨트롤러(120)가 상기 외부 메모리(200)에 저장된 데이터를 변경하는 동작을 일례로서 설명한다.
도 2에서, 상기 IP 블록(130)은 "C"로 표시된 것과 같이, 상기 시스템 버스(110)를 통하여 상기 메모리 컨트롤러(120)에 데이터 변경을 요청한다. 상기 메모리 컨트롤러(120)는 상기 IP 블록(130)의 데이터 변경 요청에 응답하여, "D"로 표시된 것과 같이, 상기 외부 메모리(200)에 저장된 데이터 신호를 독출하고, 독출된 데이터 신호를 변경한다. 또, 상기 메모리 컨트롤러(120)는 "E"로 표시된 것과 같이, 변경된 데이터 신호를 다시 상기 외부 메모리(200)에 기입한다. 상술한 것과 같이, 상기 IP 블록(130)이 상기 메모리 컨트롤러(120)에 데이터 변경을 요청하는 것만으로, 상기 메모리 컨트롤러(120)는 상기 외부 메모리(200)에 저장된 데이터의 독출/변경/기입 동작을 자동으로 수행한다. 따라서 상기 외부 메모리(200)에 저장된 데이터의 변경 과정 동안, 상기 IP 블록(130)은 상기 시스템 버스(110)를 한 번 점유하게 되므로, 상기 IP 블록(130)에 의한 상기 시스템 버스(110)의 점유 시간이 단축될 수 있다.
도 3은 도 2에 도시된 메모리 컨트롤러(120)를 좀 더 상세히 나타내는 도면이다. 도 3을 참고하면, 상기 메모리 컨트롤러(120)는 컨트롤러(121), 어드레스 발생부(122), 어드레스 버퍼(123), 입력 버퍼(124), 데이터 변경부(125), 입력 데이터 처리기(126), 출력 데이터 처리기(127), 선택부(128), 및 출력 버퍼(129)를 포함한다. 상기 컨트롤러(121)는 초기에 메모리 버스(110, 도 2 참고)를 통하여 IP 블록(130, 도 2 참고)으로부터 수신되는 전송 요청 신호(REQ)에 응답하여, 상기 IP 블록(130)과의 통신을 개시한다. 상기 컨트롤러(121)는 상기 IP 블록(130)으로부터 독출 요청 신호(READ), 기입 요청 신호(WRITE), 및 변경 요청 신호(MDFY) 중 어느 하나를 수신한다. 상기 컨트롤러(121)는 상기 독출 요청 신호(READ) 또는 상기 기입 요청 신호(WRITE)를 수신할 때, 상기 IP 블록(130)으로부터 전송될 데이터 신호의 크기 정보(SIZE) 또는 길이 정보(LENG)를 더 수신한다. 상기 크기 정보(SIZE)는 상기 메모리 컨트롤러(120)와 상기 IP 블록(130) 사이에서 한 번에 전송되는 데이터 신호의 비트 수를 나타낸다. 상기 크기 정보(SIZE)는 예를 들어, 8비트, 16비트, 32비트 등으로 나타낼 수 있다. 상기 크기 정보(SIZE)가 8비트인 경우, 상기 메모리 컨트롤러(120)와 상기 IP 블록(130) 사이에서 8비트 단위로 데이터 신호가 전송된다. 또, 상기 길이 정보(LENG)는 상기 메모리 컨트롤러(120)와 상기 IP 블록(130) 사이에서 데이터 신호가 버스트(burst)로 전송되는 경우, 한 번에 전송되는 버스트의 길이를 나타낸다.
상기 컨트롤러(121)는 상기 변경 요청 신호(MDFY)를 수신할 때, 상기 IP 블록(130)으로부터 연산 정보 신호(ARMC)를 함께 수신한다. 상기 연산 정보 신호(ARMC)는 상기 외부 메모리(200)로부터 독출된 데이터 신호를 변경하기 위해 수행될 연산 동작의 종류를 나타낸다.
상기 컨트롤러(121)는 상기 독출 요청 신호(READ), 상기 기입 요청 신호(WRITE), 및 상기 변경 요청 신호(MDFY) 중 어느 하나에 응답하여, 제어 신호들(CTL1∼CTL9)을 출력하고, 칩 선택 신호(CS), 독출 커맨드 신호(CMD_READ) 또는 기입 커맨드 신호(CMD_WRITE)를 상기 외부 메모리(200)에 출력한다. 또, 상기 컨트롤러(121)는 클럭 발생부(미도시)로부터 수신되는 시스템 클럭 신호(SCLK)에 기초하여 메모리 클럭 신호(MCLK)를 상기 외부 메모리(200)에 더 출력한다.
상기 컨트롤러(121)는 상기 외부 메모리(200)로부터 수신되는 전송 제어 신호(WAIT)에 응답하여 전송 준비 신호(READY)를 상기 시스템 버스(110)를 통하여 상기 IP 블록(130)에 전송한다. 상기 전송 준비 신호(READY)에 응답하여, 상기 IP 블록(130)은 상기 시스템 버스(110)를 통하여 상기 메모리 컨트롤러(120)로부터 수신되는 상기 독출 데이터 신호(RE_DATA)가 유효한 상태인지의 여부를 인식한다.
한편, 상기 IP 블록(130)은 상기 변경 요청 신호(MDFY)와 함께 상기 독출 요청 신호(READ)를 상기 컨트롤러(121)에 전송할 수 있다. 그 이유는, 상기 메모리 컨트롤러(120)가 변경을 위해 상기 외부 메모리(200)로부터 독출한 상기 독출 데이터 신호(RDATA)를 필요에 따라 상기 IP 블록(130)이 사용할 수도 있기 때문이다. 따라서 상기 컨트롤러(121)는 상기 변경 요청 신호(MDFY)와 함께 수신되는 상기 독출 요청 신호(READ)에 응답하여, 상기 제어 신호(CTL8)를 발생한다. 그 결과 상기 입력 데이터 처리기(126)가 상기 제어 신호(CTL8)에 응답하여, 상기 독출 데이터 신호(RDATA)를 상기 IP 블록(130)에 전송한다.
상기 어드레스 발생부(122)는 상기 시스템 버스(110)를 통하여 상기 IP 블록(130)으로부터 어드레스 신호(ADD)를 수신한다. 상기 어드레스 발생부(122)는 상기 제어 신호(CTL1)에 응답하여 수신된 상기 어드레스 신호(ADD)에 기초하여, 독출 어드레스 신호(RADD) 또는 기입 어드레스 신호(WADD)를 발생하여 상기 어드레스 버퍼(123)에 출력한다. 상기 어드레스 버퍼(123)는 상기 어드레스 발생부(122)로부터 수신되는 상기 독출 어드레스 신호(RADD) 또는 상기 기입 어드레스 신호(WADD)를 저장하고, 상기 제어 신호(CTL2)에 응답하여, 상기 독출 어드레스 신호(RADD) 또는 상기 기입 어드레스 신호(WADD)를 상기 외부 메모리(200)에 출력한다. 상기 입력 버퍼(124)는 상기 외부 메모리(200)로부터 수신되는 독출 데이터 신호(RDATA)를 저장하고, 상기 제어 신호(CTL3)에 응답하여 저장된 상기 독출 데이터 신호(RDATA)를 상기 데이터 변경부(125)와 상기 입력 데이터 처리기(126)에 출력한다.
상기 데이터 변경부(125)는 상기 제어 신호(CTL4)에 응답하여 인에이블되거나 또는 디세이블 되고, 상기 제어 신호(CTL5)에 응답하여 수행될 연산의 종류가 결정된다. 상기 데이터 변경부(125)는 인에이블될 때, 상기 독출 데이터 신호(RDATA)와 연산 데이터 신호(AR_DATA)를 연산하고, 그 연산 결과를 변경 데이터 신호(MO_DATA)로서 출력한다. 상기 데이터 변경부(125)는 도 4를 참고하여 좀 더 상세히 후술된다.
상기 입력 데이터 처리기(126)는 상기 제어 신호(CTL8)에 응답하여, 상기 입력 버퍼(124)로부터 수신되는 상기 독출 데이터 신호(RDATA)를 저장한다. 상기 입력 데이터 처리기(126)는 저장된 상기 독출 데이터 신호(RDATA)를 설정된 포맷(format)으로 구성하여 상기 시스템 버스(110)를 통하여 독출 데이터(RE_DATA)로서 출력한다. 여기에서, 상기 설정된 포맷은 예를 들어, 전송될 상기 독출 데이터 신호(RDATA)의 특정 순서 또는 크기 등이 될 수 있다.
상기 출력 데이터 처리기(127)는 상기 제어신호(CTL9)에 응답하여, 상기 시스템 버스(110)를 통하여 상기 IP 블록(130)으로부터 기입 데이터 신호(WR_DATA)와 상기 연산 데이터 신호(AR_DATA) 중 어느 하나를 수신하여 저장한다. 상기 출력 데이터 처리기(127)는 저장된 상기 기입 데이터 신호(WR_DATA) 또는 상기 연산 데이터 신호(AR_DATA)를 설정된 포맷으로 구성하여 상기 데이터 변경부(125)와 상기 선택부(128)에 출력한다. 여기에서, 상기 컨트롤러(121)가 상기 시스템 버스(110)를 통하여 상기 기입 요청 신호(WRITE)를 수신할 때, 상기 출력 데이터 처리기(127)는 상기 시스템 버스(110)를 통하여 상기 기입 데이터 신호(WR_DATA)를 수신한다. 또, 상기 컨트롤러(121)가 상기 시스템 버스(110)를 통하여 상기 변경 요청 신호(MDFY)를 수신할 때, 상기 출력 데이터 처리기(127)는 상기 연산 데이터 신호(AR_DATA)를 수신한다.
상기 선택부(128)는 상기 제어 신호(CTL6)에 응답하여, 상기 변경 데이터 신호(MO_DATA)와 상기 출력 데이터 처리기(127)의 출력 신호 중 어느 하나를 선택하여 출력한다. 상기 출력 버퍼(129)는 상기 제어 신호(CTL7)에 응답하여 상기 선택부(128)로부터 수신되는 데이터 신호(MO_DATA 또는 WR_DATA)를 저장하고, 저장된 상기 데이터 신호(MO_DATA 또는 WR_DATA)를 상기 외부 메모리(200)에 출력한다. 상기 선택부(128)는 바람직하게 멀티플렉서로 구현될 수 있다.
도 4는 도 3에 도시된 데이터 변경부(125)를 좀 더 상세히 나타내는 도면이다. 도 4를 참고하면, 상기 데이터 변경부(125)는 입력 게이팅 회로들(181, 182), 제1 내지 제3 연산부들(183∼185), 및 멀티플렉서(186)를 포함한다. 도 4에서, 상기 데이터 변경부(125)가 세 개의 연산부들을 포함하는 것이 일례로서 도시되었지만, 상기 데이터 변경부(125)는 추가의 연산부들 더 포함할 수 있다. 상기 입력 게이팅 회로들(181, 182)은 상기 제어 신호(CTL4)에 응답하여, 입력되는 신호들을 출력하거나 또는 출력하지 않는다. 이를 좀 더 상세히 설명하면, 상기 입력 게이팅 회로(181)는 상기 제어 신호(CTL4)에 응답하여, 입력되는 상기 연산 데이터 신호(AR_DATA)를 출력하거나 또는 출력하지 않는다. 또, 상기 입력 게이팅 회로(182) 역시 상기 제어 신호(CTL4)에 응답하여, 입력되는 상기 독출 데이터 신호(RDATA)를 출력하거나 또는 출력하지 않는다. 상기 입력 게이팅 회로들(181, 182)은 각각 예를 들어, AND 게이트로 구현될 수 있다. 상기 제1 내지 제3 연산부들(183∼185)은 상기 입력 게이팅 회로들(181, 182)로부터 수신되는 상기 연산 데이터 신호(AR_DATA)와 상기 독출 데이터 신호(RDATA)를 각각 연산하고, 그 연산 결과 신호들(FR_DAT, SR_DAT, TR_DAT)을 각각 출력한다. 여기에서, 상기 제1 내지 제3 연산부들(183∼185)은 각기 다른 연산 동작을 수행한다. 예를 들어, 상기 제1 연산부(183)가 XOR 연산을 수행하고, 상기 제2 연산부(184)가 덧셈 연산을 수행하고, 상기 제3 연산부(185)가 곱셈 연산을 수행할 수 있다. 상기 멀티플렉서(186)는 상기 제어 신호(CTL5)에 응답하여, 상기 연산 결과 신호들(FR_DAT, SR_DAT, TR_DAT) 중 어느 하나를 선택하여 상기 변경 데이터 신호(MO_DATA)로서 출력한다.
한편, 도 4에서는 상기 데이터 변경부(125)가 다양한 연산 동작들을 수행하는 것으로 도시되었지만, 상기 데이터 변경부(125)는 하나의 연산 동작을 수행할 수도 잇다. 이 경우, 상기 데이터 변경부(125)는 두 개의 입력 게이팅 회로들과 하나의 연산부만으로 구현될 수도 있다.
다음으로, 상기와 같이 구성된 상기 메모리 컨트롤러(120)가 상기 변경 요청 신호(MDFY)에 응답하여, 상기 외부 메모리(200)에 저장된 데이터 신호를 독출하고, 변경하여 다시 기입하는 동작 과정을 설명한다.
먼저, 상기 IP 블록(130)이 상기 시스템 버스(110)를 통하여 상기 메모리 컨트롤러(120)에 상기 변경 요청 신호(MDFY), 상기 연산 정보 신호(ARMC), 상기 어드레스 신호(ADD), 및 상기 연산 데이터 신호(AR_DATA)를 전송한다. 상기 메모리 컨트롤러(120)의 컨트롤러(121)는 상기 변경 요청 신호(MDFY)에 응답하여, 상기 제어 신호들(CTL1, CTL2, CTL9)을 출력한다. 또, 상기 컨트롤러(121)는 상기 칩 선택 신호(CS), 상기 메모리 클럭 신호(MCLK), 및 상기 독출 커맨드 신호(CMD_READ)를 상기 외부 메모리(200)에 출력한다. 상기 어드레스 발생기(122)는 상기 제어 신호(CTL1)에 응답하여 상기 시스템 버스(110)로부터 수신되는 상기 어드레스 신호(ADD)를 저장하고, 저장된 상기 어드레스 신호(ADD)에 기초하여 상기 독출 어드레스 신호(RADD)를 발생하여 상기 외부 메모리(200)에 출력한다. 상기 어드레스 버퍼(123)는 상기 제어 신호(CTL2)에 응답하여, 상기 독출 어드레스 신호(RADD)를 저장하고, 저장된 상기 독출 어드레스 신호(RADD)를 상기 외부 메모리(200)에 출력한다. 상기 출력 데이터 처리기(127)는 상기 제어 신호(CTL9)에 응답하여, 상기 연산 데이터 신호(AR_DATA)를 수신하여 저장하고, 저장된 상기 연산 데이터 신호(AR_DATA)를 설정된 포맷으로 구성하여 출력한다.
이 후, 상기 컨트롤러(121)는 상기 제어 신호들(CTL3∼CTL6)을 출력한다.
상기 입력 버퍼(124)는 상기 제어 신호(CTL3)에 응답하여, 상기 외부 메모리(200)로부터 수신되는 상기 독출 데이터 신호(RDATA)를 저장하고, 저장된 상기 독출 데이터 신호(RDATA)를 출력한다. 한편, 상기 컨트롤러(121)가 상기 IP 블록(130)으로부터 상기 변경 요청 신호(MDFY)와 함께 상기 독출 요청 신호(READ)를 수신한 경우, 상기 컨트롤러(121)는 상기 독출 요청 신호(READ)에 응답하여, 상기 제어 신호(CTL8)를 더 발생한다. 그 결과 상기 입력 데이터 처리기(126)가 상기 제어 신호(CTL8)에 응답하여, 상기 입력 버퍼(124)로부터 수신되는 상기 독출 데이터 신호(RDATA)를 저장한다. 상기 입력 데이터 처리기(126)는 저장된 상기 독출 데이터 신호(RDATA)를 설정된 포맷으로 구성하여 상기 시스템 버스(110)를 통하여 독출 데이터(RE_DATA)로서 상기 IP 블록(130)에 전송한다.
상기 데이터 변경부(125)는 상기 제어 신호(CTL4)에 응답하여 인에이블 되어, 상기 입력 버퍼(124)로부터 상기 독출 데이터 신호(RDATA)를 수신하고, 상기 출력 데이터 처리기(127)로부터 상기 연산 데이터 신호(AR_DATA)를 수신한다. 상기 데이터 변경부(125)는 상기 제어 신호(CTL5)에 응답하여 상기 독출 데이터 신호(RDATA)와 상기 연산 데이터 신호(AR_DATA)를 연산하고, 그 연산 결과를 변경 데이터 신호(MO_DATA)를 출력한다. 상기 선택부(128)는 상기 제어 신호(CTL6)에 응답하여, 상기 변경 데이터 신호(MO_DATA)를 선택하여 출력한다.
이 후, 상기 컨트롤러(121)는 상기 제어 신호들(CTL1, CTL2, CTL7)을 출력한다. 또, 상기 컨트롤러(121)는 기입 커맨드 신호(CMD_WRITE)를 상기 외부 메모리(200)에 출력한다. 상기 어드레스 발생부(122)는 상기 제어 신호(CTL1)에 응답하여 저장된 상기 어드레스 신호(ADD)에 기초하여, 상기 기입 어드레스 신호(WADD)를 발생하여 상기 외부 메모리(200)에 출력한다. 여기에서, 상기 독출 어드레스 신호(RADD)와 상기 기입 어드레스 신호(WADD)는 동일할 수도 있고, 서로 다를 수도 있다.
한편, 상기 독출 어드레스 신호(RADD)와 상기 기입 어드레스 신호(WADD)는 동일하고, 상기 외부 메모리(200)가 SDRAM과 같은 다이내믹(dynamic) 메모리인 경우, 상기 메모리 컨트롤러(120)에 의한 상기 외부 메모리(200)의 데이터 변경 동작은 더욱 간소화 될 수 있다. 즉, 상기 메모리 컨트롤러(120)가 데이터 신호를 독출하기 위해 하나의 뱅크(bank)를 인에이블시킨 후, 상기 뱅크를 디세이블시키기 전에 변경된 데이터 신호를 기입할 수 있다. 그 결과 상기 메모리 컨트롤러(120)에 의한 상기 외부 메모리(200)의 액세스 시간이 단축될 수 있고, 불필요한 전력 낭비를 막을 수 있다.
상기 어드레스 버퍼(123)는 상기 제어 신호(CTL2)에 응답하여, 상기 기입 어드레스 신호(WADD)를 저장하고, 저장된 상기 기입 어드레스 신호(WADD)를 상기 외부 메모리(200)에 출력한다. 상기 출력 버퍼(129)는 상기 제어 신호(CTL7)에 응답하여, 상기 선택부(128)로부터 수신되는 상기 변경 데이터 신호(MO_DATA)를 저장하고, 저장된 상기 변경 데이터 신호(MO_DATA)를 상기 외부 메모리(200)에 출력한다. 그 결과 상기 변경 데이터 신호(MO_DATA)가 상기 기입 어드레스 신호(WADD)에 대응하는 상기 외부 메모리(200)의 저장 셀들에 기입된다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상기한 것과 같이, 본 발명에 따른 메모리 컨트롤러와 이를 구비하는 SOC는 상기 메모리 컨트롤러가 메모리에 저장된 데이터를 독출하고, 변경하여 기입함으로써, 시스템 버스의 점유 시간을 감소시킬 수 있는 효과가 있다.
또, 본 발명에 따른 메모리 컨트롤러와 이를 구비하는 SOC는 SDRAM과 같은 다이내믹 메모리에 대해 독출 어드레스와 기입 어드레스가 동일한 경우. 해당 뱅크가 인에이블 상태인 동안, 데이터 신호를 독출하고 변경하여, 기입함으로써, 메모리의 액세스 시간을 단축시키고, 불필요한 전력 낭비를 막을 수 있는 효과가 있다.
도 1은 종래의 메모리 컨트롤러를 포함하는 SOC와 외부 메모리를 나타내는 블록도이다.
도 2는 본 발명에 따른 메모리 컨트롤러를 포함하는 SOC와 외부 메모리를 나타내는 블록도이다.
도 3은 도 2에 도시된 메모리 컨트롤러를 좀 더 상세히 나타내는 도면이다.
도 4는 도 3에 도시된 데이터 변경부를 좀 더 상세히 나타내는 도면이다.

Claims (18)

  1. 메모리와 연결되고, 시스템 버스를 통하여 IP(Intellectual property) 블록들 및 마이크로프로세서와 연결되고, 상기 IP 블록들 중 어느 하나 또는 상기 마이크로프로세서로부터 수신되는 독출 요청 신호, 기입 요청 신호, 및 변경 요청 신호 중 어느 하나와 어드레스 신호에 응답하여, 상기 메모리로부터 데이터 신호를 독출하거나, 또는 상기 메모리에 기입 데이터 신호를 기입하거나, 또는 상기 메모리로부터 상기 데이터 신호를 독출하여 변경하고, 그 변경된 데이터 신호를 상기 메모리에 기입하는 것을 특징으로 하는 메모리 컨트롤러.
  2. 제1항에 있어서,
    상기 메모리 컨트롤러는 상기 기입 요청 신호를 수신할 때 상기 시스템 버스를 통하여 상기 기입 데이터 신호를 더 수신하고, 상기 변경 요청 신호를 수신할 때 상기 시스템 버스를 통하여 연산 데이터 신호를 더 수신하는 것을 특징으로 하는 메모리 컨트롤러.
  3. 제1항에 있어서, 상기 메모리 컨트롤러는,
    상기 독출 요청 신호, 상기 기입 요청 신호, 및 상기 변경 요청 신호에 응답하여, 제1 내지 제9 제어 신호들을 출력하고, 독출 커맨드 신호 또는 기입 커맨드 신호와 칩 선택 신호, 및 메모리 클럭 신호를 상기 메모리에 출력하는 컨트롤러;
    상기 제1 제어 신호에 응답하여, 상기 시스템 버스를 통하여 수신되는 상기 어드레스 신호를 저장하고, 저장된 상기 어드레스 신호에 기초하여 독출 어드레스 신호 또는 기입 어드레스 신호를 발생하는 어드레스 발생부;
    상기 제2 제어 신호에 응답하여 상기 어드레스 발생부로부터 수신되는 상기 독출 어드레스 신호 또는 상기 기입 어드레스 신호를 저장하고, 저장된 상기 독출 어드레스 신호 또는 상기 기입 어드레스 신호를 상기 메모리에 출력하는 어드레스 버퍼;
    상기 제3 제어 신호에 응답하여, 상기 메모리로부터 수신되는 독출 데이터 신호를 저장하고, 저장된 상기 독출 데이터 신호를 출력하는 입력 버퍼; 및
    상기 제4 제어 신호에 응답하여 인에이블되거나 또는 디세이블되고, 인에이블될 때 상기 제5 제어 신호에 응답하여 상기 입력 버퍼로부터 수신되는 상기 독출 데이터 신호와 연산 데이터 신호를 연산하고, 그 연산 결과를 변경 데이터 신호로서 출력하는 데이터 변경부를 구비하는 것을 특징으로 하는 메모리 컨트롤러.
  4. 제3항에 있어서, 상기 메모리 컨트롤러는,
    상기 제6 제어 신호에 응답하여, 상기 변경 데이터 신호와 기입 데이터 신호 중 어느 하나를 선택하여 출력하는 선택부;
    상기 제7 제어 신호에 응답하여, 상기 선택부로부터 수신되는 상기 변경 데이터 신호 또는 상기 기입 데이터 신호를 저장하고, 저장된 상기 변경 데이터 신호 또는 상기 기입 데이터 신호를 상기 메모리에 출력하는 출력 버퍼;
    상기 제8 제어 신호에 응답하여, 상기 입력 버퍼로부터 수신되는 상기 독출 데이터 신호를 저장하고, 저장된 상기 독출 데이터 신호를 설정된 제1 포맷(format)으로 구성하여 상기 시스템 버스에 출력하는 입력 데이터 처리기; 및
    상기 제9 제어 신호에 응답하여, 상기 시스템 버스를 통하여 수신되는 상기 기입 데이터 신호 또는 상기 연산 데이터 신호를 저장하고, 저장된 상기 기입 데이터 신호 또는 상기 연산 데이터 신호를 설정된 제2 포맷으로 구성하여 상기 데이터 변경부와 상기 선택부에 출력하는 출력 데이터 처리기를 더 구비하는 것을 특징으로 하는 메모리 컨트롤러.
  5. 제3항에 있어서,
    상기 컨트롤러는 상기 변경 요청 신호를 수신할 때 연산 정보 신호를 더 수신하고, 상기 연산 정보 신호에 응답하여 상기 제5 제어 신호를 발생하는 것을 특징으로 하는 메모리 컨트롤러.
  6. 제3항에 있어서,
    상기 컨트롤러는 상기 변경 요청 신호를 수신할 때, 상기 독출 커맨드 신호를 상기 메모리에 출력하고, 소정 시간 이후 상기 기입 커맨드 신호를 상기 메모리에 출력하는 것을 특징으로 하는 메모리 컨트롤러.
  7. 제3항에 있어서, 상기 데이터 변경부는,
    상기 제4 제어 신호에 응답하여 상기 연산 데이터 신호와 상기 독출 데이터 신호를 출력하거나 또는 출력하지 않는 입력 게이팅 회로들; 및
    상기 입력 게이팅 회로들로부터 각각 수신되는 상기 연산 데이터 신호와 상기 독출 데이터 신호를 연산하고, 그 연산 결과를 상기 변경 데이터 신호로서 출력하는 연산부를 구비하는 것을 특징으로 하는 메모리 컨트롤러.
  8. 제3항에 있어서, 상기 데이터 변경부는,
    상기 제4 제어 신호에 응답하여 상기 연산 데이터 신호와 상기 독출 데이터 신호를 출력하거나 또는 출력하지 않는 입력 게이팅 회로들;
    서로 다른 연산 동작을 수행하고, 상기 입력 게이팅 회로들로부터 수신되는 상기 연산 데이터 신호와 상기 독출 데이터 신호를 각각 연산하여, 제1 내지 제N(N은 정수) 연산 결과 신호들을 출력하는 제1 내지 제N 연산부들; 및
    상기 제5 제어 신호에 응답하여 상기 제1 내지 제N 연산 결과 신호들 중 어느 하나를 선택하여, 상기 변경 데이터 신호로서 출력하는 멀티플렉서를 구비하는 것을 특징으로 하는 메모리 컨트롤러.
  9. 제3항에 있어서,
    상기 메모리는 SDRAM(synchronous DRAM)이고,
    상기 메모리 컨트롤러는 상기 독출 어드레스 신호와 상기 기입 어드레스 신호가 동일할 때, 상기 SDRAM의 소정 뱅크가 인에이블 상태인 동안, 상기 SDRAM으로부터 상기 데이터 신호를 독출하여 변경하고, 그 변경된 데이터 신호를 상기 SDRAM에 기입하는 것을 특징으로 하는 메모리 컨트롤러.
  10. 시스템 버스에 연결되어, 상기 시스템 버스에 연결되는 모든 장치들을 제어하고, 소정의 프로그램을 실행하는 마이크로프로세서;
    상기 프로그램을 저장하거나 또는 상기 마이크로프로세서의 동작 과정에서 발생되는 주요 데이터들을 저장하는 내부 메모리;
    상기 시스템 버스에 연결되고, 설정된 기능들을 각각 수행하는 IP(Intellectual property) 블록들; 및
    외부 메모리와 연결되고, 상기 시스템 버스에 연결되어, 상기 IP 블록들 중 어느 하나 또는 상기 마이크로프로세서로부터 수신되는 독출 요청 신호, 기입 요청 신호, 및 변경 요청 신호 중 어느 하나와 어드레스 신호에 응답하여, 상기 외부 메모리로부터 데이터 신호를 독출하거나, 또는 상기 외부 메모리에 기입 데이터 신호를 기입하거나, 또는 상기 외부 메모리로부터 상기 데이터 신호를 독출하여 변경하고, 그 변경된 데이터 신호를 상기 외부 메모리에 기입하는 메모리 컨트롤러를 구비하는 것을 특징으로 하는 SOC.
  11. 제10항에 있어서,
    상기 메모리 컨트롤러는 상기 기입 요청 신호를 수신할 때 상기 시스템 버스를 통하여 상기 기입 데이터 신호를 더 수신하고, 상기 변경 요청 신호를 수신할 때 상기 시스템 버스를 통하여 연산 데이터 신호를 더 수신하는 것을 특징으로 하는 SOC.
  12. 제10항에 있어서, 상기 메모리 컨트롤러는,
    상기 독출 요청 신호, 상기 기입 요청 신호, 및 상기 변경 요청 신호에 응답하여, 제1 내지 제9 제어 신호들을 출력하고, 독출 커맨드 신호 또는 기입 커맨드 신호와 칩 선택 신호, 및 메모리 클럭 신호를 상기 메모리에 출력하는 컨트롤러;
    상기 제1 제어 신호에 응답하여, 상기 시스템 버스를 통하여 수신되는 상기 어드레스 신호를 저장하고, 저장된 상기 어드레스 신호에 기초하여 독출 어드레스 신호 또는 기입 어드레스 신호를 발생하는 어드레스 발생부;
    상기 제2 제어 신호에 응답하여 상기 어드레스 발생부로부터 수신되는 상기 독출 어드레스 신호 또는 상기 기입 어드레스 신호를 저장하고, 저장된 상기 독출 어드레스 신호 또는 상기 기입 어드레스 신호를 상기 외부 메모리에 출력하는 어드레스 버퍼;
    상기 제3 제어 신호에 응답하여, 상기 외부 메모리로부터 수신되는 독출 데이터 신호를 저장하고, 저장된 상기 독출 데이터 신호를 출력하는 입력 버퍼; 및
    상기 제4 제어 신호에 응답하여 인에이블되거나 또는 디세이블되고, 인에이블될 때 상기 제5 제어 신호에 응답하여 상기 입력 버퍼로부터 수신되는 상기 독출 데이터 신호와 연산 데이터 신호를 연산하고, 그 연산 결과를 변경 데이터 신호로서 출력하는 데이터 변경부를 구비하는 것을 특징으로 하는 SOC.
  13. 제12항에 있어서, 상기 메모리 컨트롤러는,
    상기 제6 제어 신호에 응답하여, 상기 변경 데이터 신호와 기입 데이터 신호 중 어느 하나를 선택하여 출력하는 선택부;
    상기 제7 제어 신호에 응답하여, 상기 선택부로부터 수신되는 상기 변경 데이터 신호 또는 상기 기입 데이터 신호를 저장하고, 저장된 상기 변경 데이터 신호 또는 상기 기입 데이터 신호를 상기 외부 메모리에 출력하는 출력 버퍼;
    상기 제8 제어 신호에 응답하여, 상기 입력 버퍼로부터 수신되는 상기 독출 데이터 신호를 저장하고, 저장된 상기 독출 데이터 신호를 설정된 제1 포맷(format)으로 구성하여 상기 시스템 버스에 출력하는 입력 데이터 처리기; 및
    상기 제9 제어 신호에 응답하여, 상기 시스템 버스를 통하여 수신되는 상기 기입 데이터 신호 또는 상기 연산 데이터 신호를 저장하고, 저장된 상기 기입 데이터 신호 또는 상기 연산 데이터 신호를 설정된 제2 포맷으로 구성하여 상기 데이터 변경부와 상기 선택부에 출력하는 출력 데이터 처리기를 더 구비하는 것을 특징으로 하는 SOC.
  14. 제12항에 있어서,
    상기 컨트롤러는 상기 변경 요청 신호를 수신할 때 연산 정보 신호를 더 수신하고, 상기 연산 정보 신호에 응답하여 상기 제5 제어 신호를 발생하는 것을 특징으로 하는 SOC.
  15. 제12항에 있어서,
    상기 컨트롤러는 상기 변경 요청 신호를 수신할 때, 상기 독출 커맨드 신호를 상기 외부 메모리에 출력하고, 소정 시간 이후 상기 기입 커맨드 신호를 상기 외부 메모리에 출력하는 것을 특징으로 하는 SOC.
  16. 제12항에 있어서, 상기 데이터 변경부는,
    상기 제4 제어 신호에 응답하여 상기 연산 데이터 신호와 상기 독출 데이터 신호를 출력하거나 또는 출력하지 않는 입력 게이팅 회로들; 및
    상기 입력 게이팅 회로들로부터 각각 수신되는 상기 연산 데이터 신호와 상기 독출 데이터 신호를 연산하고, 그 연산 결과를 상기 변경 데이터 신호로서 출력하는 연산부를 구비하는 것을 특징으로 하는 구비하는 것을 특징으로 하는 SOC.
  17. 제12항에 있어서, 상기 데이터 변경부는,
    상기 제4 제어 신호에 응답하여 상기 연산 데이터 신호와 상기 독출 데이터 신호를 출력하거나 또는 출력하지 않는 입력 게이팅 회로들;
    서로 다른 연산 동작을 수행하고, 상기 입력 게이팅 회로들로부터 수신되는 상기 연산 데이터 신호와 상기 독출 데이터 신호를 각각 연산하여, 제1 내지 제N(N은 정수) 연산 결과 신호들을 출력하는 제1 내지 제N 연산부들; 및
    상기 제5 제어 신호에 응답하여 상기 제1 내지 제N 연산 결과 신호들 중 어느 하나를 선택하여, 상기 변경 데이터 신호로서 출력하는 멀티플렉서를 구비하는 것을 특징으로 하는 SOC.
  18. 제12항에 있어서,
    상기 외부 메모리는 SDRAM(synchronous DRAM)이고,
    상기 메모리 컨트롤러는 상기 독출 어드레스 신호와 상기 기입 어드레스 신호가 동일할 때, 상기 SDRAM의 소정 뱅크가 인에이블 상태인 동안, 상기 SDRAM으로부터 상기 데이터 신호를 독출하여 변경하고, 그 변경된 데이터 신호를 상기 SDRAM에 기입하는 것을 특징으로 하는 SOC.
KR10-2004-0015591A 2004-03-08 2004-03-08 독출-변경-기입 기능을 가지는 메모리 컨트롤러 및 이를구비하는 soc KR100539251B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2004-0015591A KR100539251B1 (ko) 2004-03-08 2004-03-08 독출-변경-기입 기능을 가지는 메모리 컨트롤러 및 이를구비하는 soc
US11/072,870 US7299323B2 (en) 2004-03-08 2005-03-04 Memory controller having a read-modify-write function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2004-0015591A KR100539251B1 (ko) 2004-03-08 2004-03-08 독출-변경-기입 기능을 가지는 메모리 컨트롤러 및 이를구비하는 soc

Publications (2)

Publication Number Publication Date
KR20050090255A KR20050090255A (ko) 2005-09-13
KR100539251B1 true KR100539251B1 (ko) 2005-12-27

Family

ID=34910064

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-0015591A KR100539251B1 (ko) 2004-03-08 2004-03-08 독출-변경-기입 기능을 가지는 메모리 컨트롤러 및 이를구비하는 soc

Country Status (2)

Country Link
US (1) US7299323B2 (ko)
KR (1) KR100539251B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4416572B2 (ja) * 2004-05-27 2010-02-17 富士通株式会社 信号処理回路
US7721011B1 (en) 2005-05-09 2010-05-18 Oracle America, Inc. Method and apparatus for reordering memory accesses to reduce power consumption in computer systems
US7496777B2 (en) * 2005-10-12 2009-02-24 Sun Microsystems, Inc. Power throttling in a memory system
US7533212B1 (en) 2005-10-20 2009-05-12 Sun Microsystems, Inc. System memory board subsystem using DRAM with integrated high speed point to point links
US7523282B1 (en) 2005-10-27 2009-04-21 Sun Microsystems, Inc. Clock enable throttling for power savings in a memory subsystem
US7409491B2 (en) * 2005-12-14 2008-08-05 Sun Microsystems, Inc. System memory board subsystem using DRAM with stacked dedicated high speed point to point links
KR100721444B1 (ko) * 2006-08-29 2007-05-23 삼성전자주식회사 네트워크-온-칩 전력 제어 장치 및 그 방법
KR20080084083A (ko) * 2007-03-14 2008-09-19 삼성전자주식회사 효율적으로 메모리 포트를 사용할 수 있는 마이크로 컴퓨터시스템
US7941682B2 (en) 2007-05-09 2011-05-10 Gainspan, Inc. Optimum power management of system on chip based on tiered states of operation
US7830726B2 (en) * 2008-09-30 2010-11-09 Seagate Technology Llc Data storage using read-mask-write operation
JP5347657B2 (ja) * 2009-03-31 2013-11-20 富士通株式会社 データ記憶プログラム、方法、及び情報処理装置
US9285865B2 (en) 2012-06-29 2016-03-15 Oracle International Corporation Dynamic link scaling based on bandwidth utilization
CN103257940B (zh) * 2013-03-27 2016-08-03 青岛中星微电子有限公司 一种片上系统SoC写数据的方法及装置
US9588840B2 (en) 2013-04-18 2017-03-07 Samsung Electronics Co., Ltd. Memory devices that perform masked write operations and methods of operating the same
US20150248322A1 (en) * 2014-02-28 2015-09-03 Kabushiki Kaisha Toshiba Memory controller and memory system
KR102507219B1 (ko) * 2016-02-02 2023-03-09 에스케이하이닉스 주식회사 시스템 및 시스템의 동작 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05298179A (ja) 1992-04-21 1993-11-12 Mitsubishi Electric Corp メモリ制御システム
JPH07129468A (ja) 1993-11-04 1995-05-19 Matsushita Electric Ind Co Ltd 主記憶制御装置
US5737744A (en) * 1995-10-13 1998-04-07 Compaq Computer Corporation Disk array controller for performing exclusive or operations
JP3965784B2 (ja) 1998-06-15 2007-08-29 株式会社日立製作所 共有メモリ排他アクセス制御方法
US6868486B1 (en) * 2000-08-25 2005-03-15 Ncr Corporation Providing multiple memory controllers on a memory bus
US6718444B1 (en) * 2001-12-20 2004-04-06 Advanced Micro Devices, Inc. Read-modify-write for partial writes in a memory controller

Also Published As

Publication number Publication date
US7299323B2 (en) 2007-11-20
US20050198458A1 (en) 2005-09-08
KR20050090255A (ko) 2005-09-13

Similar Documents

Publication Publication Date Title
US7299323B2 (en) Memory controller having a read-modify-write function
US11237728B2 (en) Method for accessing extended memory, device, and system
US7657696B2 (en) Method to detect NAND-flash parameters by hardware automatically
KR100805603B1 (ko) 집적 회로
US7543114B2 (en) System and controller with reduced bus utilization time
US20050169061A1 (en) Multi-port memory device for buffering between hosts and non-volatile memory devices
TW201743219A (zh) Ddr相容非同步記憶體模組、系統與操作記憶體模組的方法
JP2005235182A (ja) 不揮発性メモリを制御するためのコントローラ
US10866921B2 (en) Apparatuses and methods for an operating system cache in a solid state device
US20100185811A1 (en) Data processing system and method
US7725621B2 (en) Semiconductor device and data transfer method
KR20230010675A (ko) Dram을 위한 리프레시 관리
JP2011081553A (ja) 情報処理装置及びその制御方法
US20080007569A1 (en) Control protocol and signaling in a new memory architecture
US20080052424A1 (en) Data access system, data access apparatus, data access integrated circuit, and data access method
KR102144185B1 (ko) 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치
KR20150095139A (ko) 채널 버퍼로의 직접 접근이 가능한 직접 메모리 접근 컨트롤러 및 시스템.
US9244824B2 (en) Memory sub-system and computing system including the same
US20060248263A1 (en) Data processing apparatus and data processing method
KR100298955B1 (ko) 데이타처리시스템
US10261700B1 (en) Method and apparatus for streaming buffering to accelerate reads
CN107025190B (zh) 系统及其操作方法
US8402233B2 (en) Method and apparatus for high throughput mass storage device interface in a microprocessor for handheld systems
KR20030063226A (ko) 마이크로 컴퓨터 시스템
US6356976B1 (en) LSI system capable of reading and writing at high speed

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121130

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20131129

Year of fee payment: 9