KR20170028228A - 적응적으로 캐시를 관리하는 방법 및 장치 - Google Patents

적응적으로 캐시를 관리하는 방법 및 장치 Download PDF

Info

Publication number
KR20170028228A
KR20170028228A KR1020150148932A KR20150148932A KR20170028228A KR 20170028228 A KR20170028228 A KR 20170028228A KR 1020150148932 A KR1020150148932 A KR 1020150148932A KR 20150148932 A KR20150148932 A KR 20150148932A KR 20170028228 A KR20170028228 A KR 20170028228A
Authority
KR
South Korea
Prior art keywords
data
cache
processing
information
unit
Prior art date
Application number
KR1020150148932A
Other languages
English (en)
Other versions
KR102362941B1 (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 PCT/KR2016/009857 priority Critical patent/WO2017039393A1/en
Priority to EP16842359.8A priority patent/EP3345096B1/en
Priority to CN201680050701.3A priority patent/CN108027774B/zh
Priority to US15/255,469 priority patent/US10193905B2/en
Publication of KR20170028228A publication Critical patent/KR20170028228A/ko
Application granted granted Critical
Publication of KR102362941B1 publication Critical patent/KR102362941B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/105PBS [Private Base Station] network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/12WLAN [Wireless Local Area Networks]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

데이터 처리 속도를 높이기 위해 입출력 장치의 데이터를 바로 캐시(cache)로 전송해 프로세서에서 처리할 경우 데이터 처리 속도를 높이는 장점이 있으나, 여러 개의 입출력 장치의 데이터를 동시에 처리하거나, 동작 중인 어플리케이션이 있다면 용량이 제한되어 있는 캐시를 나눠 사용해야 하므로 처리 속도가 떨어지게 된다. 본원발명은 이러한 단점을 극복하기 위해 네트워크 상황 관련 정보, 기기 상태 관련 정보, 입출력장치 상태 정보를 기반으로 각 데이터의 우선 순위를 계산해 데이터를 캐시로 전송해 처리할지, 메모리로 전송해 처리할지 판단하는 방법 및 장치를 개시한다.

Description

적응적으로 캐시를 관리하는 방법 및 장치{METHOD AND APPARATUS FOR ADAPTIVE CACHE MANAGEMENT}
본 발명은 캐시(cache)를 관리하는 방법 및 장치에 관한 것이다.
최근 스마트 폰, 태블릿, 웨어러블 장치 등 다양한 모바일 기기(mobile device, mobile apparatus,단말, 터미널(terminal) 등의 용어와 혼용 가능하다)가 등장하였으며, 다양한 모바일 기기 사이의 네트워크 통신을 수행하기 위한 네트워크 장치(이하 네트워크 통신 장치, 통신 장치와 혼용 가능하다)와 가 필요하게 되었다. 또한 사물 인터넷(Internet of things, IoT)의 발달로 인하여 주위 사물들간의 통신이 필요하게 되었다. 그러므로 다양한 모바일 기기는 Wi-Fi(Wireless Fidelity, IEEE 802.11 표준 기술과 혼용 가능하다), 롱-텀 에볼루션(3GPP Long Term Evolution, LTE) 뿐만 아니라 블루투스(Bluetooth), 지그비(ZigBee), 근거리 무선 통신 (Near Field Communication, NFC) 등의 다양한 네트워크 장치를 지원하고 있으며, 향후 더 많은 네트워크 장치를 지원하게 될 것이다. 또한 이러한 네트워크 환경을 이용하는 사용자가 점점 증가하고 있다. 또한 모바일 기기는 범용 직렬 버스(Universal Serial Bus, USB), 범용 플래시 저장매체(Universal Flash Storage, UFC) 등과 같은 다양한 입출력 (input/output, I/O) 장치(unit)를 포함하고 있다. 광의의 I/O 장치는 상기 기술한 네트워크 장치를 포함할 수 있다.
사용자들은 모바일 기기에서 다양한 컨텐츠를 사용하기 위해, 빠른 네트워크 처리 속도를 원하고 있다. 현재 Wi-Fi는 Mbps 단위의 데이터 전송 속도를 지원하고 있지만 향후 Gbps 단위의 데이터 전송 속도를 지원할 수 있도록 개선될 예정이다. 또한 LTE와 같은 셀룰러 통신이 지원하는 데이터 전송 속도 역시 높아지고 있는 등 I/O 장치의 데이터 전송 속도는 점점 빨라지고 있다.
그런데 현재 모바일 기기에서 Wi-Fi, LTE 와 같은 네트워크 장치 및 I/O 장치에서 발생하는 고속으로 송수신되는 데이터(이하 고속의 데이터, 고속 데이터)는 주(main) 중앙 처리 장치(central processing unit, CPU, 프로세서 등과 혼용될 수 있다)에서 처리하고 있다. 이러한 처리 방법은 고속 네트워크 환경에서 메인 CPU에 많은 부하를 발생시키므로, 이로 인해 네트워크 성능이 저하되고 메인 CPU의 과도한 부하로 인해 발열 및 전력 소비의 상승이 일어나고 있다. 현재 이러한 문제를 해결하기 위하여 고속 데이터를 처리하기 위한 네트워크 처리 방법에 대한 연구가 활발하게 진행되고 있다.
상기와 같은 문제점을 해결하기 위한 본 발명은 데이터를 처리하는 방법에 있어서, 데이터를 처리하는 방법에 관련된 정보를 수신하는 단계; 상기 데이터를 처리하는 방법에 관련된 정보를 기반으로 상기 데이터를 캐시(cache)로 전송할지, 메모리(memory)로 전송할지 결정하는 단계를 포함하는 것을 특징으로 한다. 또한 상기 데이터를 처리하는 방법에 관련된 정보는 네트워크 상황 관련 정보, 기기 상태 관련 정보 및 입출력 상태 정보 중 적어도 하나이며, 상기 결정 단계는 상기 데이터를 처리하는 방법에 관련된 정보를 기반으로 각 데이터별 가중치 인자(weight factor)를 계산하는 단계를 더 포함한다.
또한, 데이터를 처리하는 캐시 관리부에 있어서, 입출력(I/O) 인터페이스로부터 전송된 상기 데이터를 수신하는 FIFO(first-in first-out); 데이터를 처리하는 방법에 관련된 정보를 수신하는 모니터링부; 상기 FIFO로부터 상기 데이터를 수신하고, 상기 모니터링부로부터 상기 데이터를 처리하는 방법에 관련된 정보를 수신하고, 상기 데이터를 처리하는 방법에 관련된 정보를 기반으로 데이터를 캐시(cache)로 전송할지, 메모리(memory)로 전송할지 결정하고, 상기 판단에 따라 상기 데이터를 캐시로 전송하거나 메모리로 전송하도록 제어하는 판단부를 포함하는 것을 특징으로 한다. 또한 상기 데이터를 처리하는 방법에 관련된 정보는 네트워크 상황 관련 정보, 기기 상태 관련 정보 및 입출력 상태 정보 중 적어도 하나이며, 상기 판단부는 상기 데이터를 처리하는 방법에 관련된 정보를 기반으로 각 데이터별 가중치 인자(weight factor)를 계산해 상기 결정을 수행한다.
본 특허에서는 네트워크에 연결된 디바이스 사이에서 빠르게 고속 데이터를 처리하는 사용하는 방법 및 장치를 제안한다. 본 발명의 실시예에 따른 방법 및 장치에 따르면 네트워크 상태, 디바이스 상태 그리고 I/O 장치에 관련된 정보를 기반으로 캐시 및 메모리가 효과적으로 사용될 수 있다.
도 1은 본 발명의 전체적인 동작을 도시한 도면이다.
도 2는 데이터를 캐시로 전송할지, 즉 고속 데이터로 처리할지에 대해 판단하는 요소를 도시한 도면이다.
도 3은 본 발명에 따라 캐시를 적용적으로 사용하는 일례를 구체적으로 도시한 도면이다.
도 4는 범용 적응적 캐시 관리부가 캐시를 설정하는 방법을 도시한 도면이다.
도 5는 본 특허에서 제안하는 장치를 상세하게 도시한 블록도이다.
도 6은 본 발명을 실시할 수 있는 또다른 장치의 일례를 도시한 블록도이다.
도 7은 본 발명을 실시할 수 있는 또다른 장치의 일례를 도시한 블록도이다.
이하, 본 발명의 실시예를 첨부한 도면과 함께 상세히 설명한다. 또한 본 발명을 설명함에 있어서 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
또한, 본 발명의 실시예들을 구체적으로 설명함에 있어서, 본 발명의 주요한 요지는 유사한 기술적 배경 및 채널형태를 가지는 여타의 통신 시스템에도 본 발명의 범위를 크게 벗어나지 아니하는 범위에서 약간의 변형으로 적용 가능하며, 이는 본 발명의 기술분야에서 숙련된 기술적 지식을 가진 자의 판단으로 가능할 것이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
I/O 데이터를 처리하는 방법은 데이터 처리 성능에 큰 영향을 미치므로, I/O 데이터를 처리하기 위한 연구된 기술은 아래와 같다. 일례로, 데이터는 저장되었던 메모리에서 캐시(cache)로 전송되고, 캐시에 전송된 데이터가 CPU에서 처리된다. 이 때 I/O 어댑터는 직접 메모리 접근(Direct Memory Access, DMA) 기술을 이용해 직접 메모리에 접근할 수 있다. 따라서, DMA 기술을 사용하면 바로 메모리에 데이터를 저장해 CPU의 부담을 줄일 수 있다. 그러나 프로세서는 저장된 데이터에 지속적으로 접근해 데이터를 가지고 와야 하며, 메모리에 데이터를 전송하기 위해 프로세서를 사용하면 프로세서의 성능이 저하된다는 문제점이 있다. 또한 DMA 기술에 따르면 I/O 데이터를 바로 메모리로 전송하므로 CPU의 성능 저하는 줄일 수 있지만, 메모리에 데이터를 저장하는 시간, 저장된 메모리를 버스를 통하여 캐시로 가져가는 시간, 캐시에서 프로세서가 데이터를 처리하는 시간이 소요된다는 문제점이 있다.
이러한 문제를 해결하기 위한 기술로 직접 캐시 접근(Direct Cache Access, DCA) 기술이 개발되었다. 프로세서는 빠른 접근을 위해 데이터를 저장할 수 있는 캐시를 포함 할 수 있다. 캐시는 시스템 메모리 접근을 빠르게 하기 위해 탑재하는 메모리이다. I/O 장치에서 전송되는 데이터는 바로 캐시에 전송될 수 있으며, 이러한 DCA 기술은 시스템 메모리의 접근 대기 시간을 줄이고 해당 I/O 장치의 데이터를 바로 캐시에 전송하여 프로세서에서 처리하므로 데이터 처리 속도를 높이는 효과가 있다.
그러나 DCA 기술을 사용할 경우 다른 I/O 장치의 데이터를 동시에 처리하거나 동작 중인 어플리케이션이 있다면 용량이 제한되어있는 캐시를 나눠 사용해야 하므로 전체적으로 처리 속도가 떨어지게 된다. 또한 다양한 I/O 장치가 존재하고 이러한 장치의 데이터를 동시에 처리할 때 마찬가지의 원인으로 데이터 처리 성능이 떨어질 수 있다.
종래에는 고속 I/O 장치의 경우 입출력되는 데이터를 빠르게 처리하기 위해 해당 데이터 처리 속도를 높이기 위한 하드웨어 가속기 또는 소프트웨어 가속기를 주로 이용하였다. 그러나 이러한 방법으로 데이터 전송 속도가 현저히 빨라진 현재의 I/O 장치의 데이터를 처리하기에 부족함이 있다.
<실시예 1>
본 발명에서는 기존 DCA 기술에서 동작중인 어플리케이션의 성능이 열화되고 고속 I/O 장치의 데이터 처리 속도가 떨어지는 문제를 해결하기 위하여 네트워크의 상황에 관련된 정보, 기기의 상태에 관련된 정보 및 I/O 상태에 관련된 정보를 사용하여 데이터의 우선 순위를 결정해 결정된 우선 순위에 기반해 캐시로 데이터를 전송하거나 메모리에 데이터를 전송하도록 하는 방법 및 이러한 방법을 수행할 수 있는 장치를 제안한다. 특히 이러한 방법은 고속 I/O 장치의 데이터를 효율적으로 처리하는데 효과적일 수 있다.
도 1은 본 발명의 전체적인 동작을 도시한 도면이다.
도 1에 따르면, 범용 적응적 캐시 관리부(global adaptive cache management, 이는 도 2 및 도 5에 보다 자세히 도시된다)는 네트워크 상황에 관련된 정보를 수신(100)한다. 이후 기기의 상태에 관련된 정보를 수신(110)한다. 이후 I/O 상태에 관련된 정보를 수신(120)한다. 범용 적응적 캐시 관리부는 수신한 네트워크 상황 관련 정보, 기기 상태 관련 정보, I/O 상태 정보를 기반으로 해당 I/O 장치의 데이터를 캐시로 전송할지, 즉 고속 데이터로 처리할지 여부를 결정(130)한다. 범용 적응적 캐시 관리부는 해당 I/O 장치의 데이터를 고속 데이터로 처리하겠다고 결정할 경우 데이터를 캐시로 전송해 캐시에 저장(140)하고 데이터를 처리하고, 그러지 않겠다고 결정할 경우 데이터를 메모리로 전송해 메모리에 저장(150)해 종래의 방법대로 데이터를 처리한다.
도 2는 데이터를 캐시로 전송할지, 즉 고속 데이터로 처리할지에 대해 판단하는 요소를 도시한 도면이다.
도 2에 따르면, 모바일 기기(200)의 칩(chip, 260)에는 CPU(210) 및 CPU에 포함되어 있는 캐시(211), 범용 적응적 캐시 관리부(global adaptive cache management, 220), I/O 인터페이스(230), 버스(240) 및 메모리(memory, 250)가 포함되어 있다.
이 때 범용 적응적 캐시 관리부는 네트워크 상황(270)에 따라 I/O 장치 데이터를 고속 데이터로 처리해야 할지, 즉 데이터의 우선 순위를 결정한다. 보다 구체적으로, 입출력되는 데이터가 긴급한 데이터이거나, 응급 상황에 관련된 데이터이거나, 생명 및 의료 분야에 관련된 데이터일 경우 우선적으로 처리하도록 결정할 수 있다. 또한 송수신부의 통신 상태 및 혼잡도를 고려해 고속 데이터로 처리해야 할지 여부를 결정할 수 있다.
또한 범용 적응적 캐시 관리부는 기기의 상태(280)에 따라 데이터의 처리 우선 순위를 결정할 수 있다. 일례로 범용 적응적 캐시 관리부는 프로세서의 정보를 이용해 프로세서의 사용량 및 아이들(idle) 상태를 판단할 수 있으며, 기기의 배터리 사용량 정보 및 배터리를 사용 가능한 시간 등의 정보를 이용해 데이터의 우선 순위를 결정할 수 있다.
또한 범용 적응적 캐시 관리부는 Wi-Fi, USB, UFS, LTE 등과 같은 I/O 장치의 상태(290)를 고려해 데이터의 처리 우선 순위를 결정할 수 있다. 범용 적응적 캐시 관리부는 사용중인 I/O 장치의 사용 여부 정보, 최대 입출력 속도, 평균 입출력 속도, 실제 입출력 속도 등의 정보를 이용해 데이터의 우선 순위를 결정할 수 있다.
도 3은 본 발명에 따라 캐시를 적용적으로 사용하는 일례를 구체적으로 도시한 도면이다.
도 3에 따르면, 범용 적응적 캐시 관리부는 네트워크 상황 관련 정보를 기반으로 가중치 인자(weighting factor) WN을 연산(300)한다. 또한 기기의 상태 관련 정보를 기반으로 가중치 인자 WA를 연산(310)한다. 이후 I/O 장치의 상태 정보를 기반으로 가중치 인자 WD를 연산(320)한다. 범용 적응적 캐시 관리부는 가중치 인자 WA, WN, WD를 기반으로 종합적인 우선 순위를 연산(330)하고, 우선 순위를 비교해 판단(340)하여 우선 순위에 따른 캐시 사용 여부를 결정(350)한다. 이 때 범용 적응적 캐시 관리부는 I/O 장치별로 입출력 데이터의 우선 순위를 연산할 수 있으나, 또는 어플리케이션별로 해당되는 데이터의 우선 순위를 연산할 수 있다.
가중치 인자 WN은 네트워크 상황에 따라 미리 정해져 있을 수 있다. 일례로, 입출력되는 데이터가 긴급 데이터이거나 응급 상황에 관련된 데이터일 경우 범용 적응적 캐시 관리부는 다른 데이터의 경우보다 높은 미리 정해진 WN 값을 적용할 수 있다. 또한 생명 및 의료 분야에 관련된 데이터일 경우 범용 적응적 캐시 관리부는 다른 종류의 데이터보다 높은 미리 정해진 WN 값을 적용할 수 있다. 이러한 네트워크 정보에 대한 WN 값은 미리 결정되어 표의 형태로 메모리에 저장되어 있을 수 있다.
가중치 인자 WA는 기기의 상황, 즉 프로세서의 사용량 및 아이들(idle) 상태 여부, 기기의 배터리 사용량 정보 및 기기가 배터리를 사용 가능한 시간 등의 정보를 기반으로 결정될 수 있다. 일례로 프로세서의 사용량을 기반으로 가중치 인자를 결정하는 방법을 기술한다.
프로세서의 사용량을 기반으로 가중치 인자 WA를 계산하는 방법은 아래 식 1과 같다.
[식 1]
Figure pat00001
WA는 어플리케이션 X의 프로세서 사용량 가중치 인자이며 TAX는 어플리케이션 X의 CPU 사용 시간, TProcessor - busy는 프로세서가 사용된 전체 시간(프로세서가 구동된 전체 시간)을 의미한다. WA를 계산하면 프로세서 사용량 대비 해당 어플리케이션의 사용 시간을 이용하여 가중치 인자를 계산할 수 있다. 이를 이용해 범용 적응적 캐시 관리부는 CPU 구동 시간 중 특정 어플리케이션을 위해 사용된 시간이 길다면, 즉 특정 어플리케이션이 CPU를 많이 사용하는 경우 빠른 데이터 처리를 위해 캐시로 해당하는 데이터를 전송하겠다고 결정할 수 있다. 이러한 WA를 결정하기 위해서 이 외에도 동작 중인 우위 처리(foreground) 어플리케이션에 가중치를 둔다거나, 사용자가 특정 어플리케이션 또는 특정 I/O 장치에 가중치를 둔다거나, 시스템이 어플리케이션 실행 히스토리 정보 등을 기반으로 특정 어플리케이션 또는 특정 I/O 장치에 가중치를 두는 규칙이 미리 설정될 수 있으며, 이러한 규칙에 따라 WA가 결정될 수 있다.
또한 가중치 인자 WD는 사용중인 I/O 디바이스의 사용 여부 정보, 최대 입출력 속도, 평균 입출력 속도, 실제 입출력 속도 등의 정보를 이용해 결정될 수 있다. 일례로 I/O 장치의 데이터 입출력 속도를 기반으로 가중치 인자를 결정하는 방법을 기술한다.
I/O 장치의 데이터 입출력 속도를 기반으로 가중치 인자 WD를 계산하는 방법은 아래 식 2와 같다. Max{SDY}는 특정 I/O 장치의 최대 성능(입출력 속도)를 의미하고, SDY는 현재 특정 I/O 장치의 성능을 의미한다.
[식 2]
Figure pat00002
또한 전체 I/O 장치의 속도 대비 특정 I/O 장치의 속도를 계산하는 식 3을 WD를 계산하기 위해 참고할 수 있다. All 은 특정 시간 동안 모든 I/O 장치의 성능의 합을 의미하고,
Figure pat00003
는 특정 시간 동안 I/O 장치 Y의 성능의 합을 의미한다.
[식 3]
Figure pat00004
범용 적응적 캐시 관리부는 위 식에 의해 계산된 I/O 장치의 최대 성능 대비 현재 성능인 WD 또는 특정 I/O 장치의 상대적 성능을 의미하는 MD를 기반으로 WD를 최종적으로 결정할 수 있다.
또한 범용 적응적 캐시 관리부는 각 어플리케이션이 어떤 I/O 장치를 사용하는지 결정할 수 있다 (또는 어떤 I/O 장치가 어떤 어플리케이션을 사용하는지 결정할 수 있다). 이러한 정보는 사용자가 설정할 수 있으며, 모바일 기기의 시스템 또는 운영체제가 어플리케이션과 I/O 장치의 사용 정보를 이용해 자동적으로 설정할 수 있다. 이러한 정보 및 위에서 기술한 방법으로 계산한 가중치 인자를 이용해 각 I/O 장치의 캐시를 이용하는 우선 순위를 결정할 수 있다. 표 1은 I/O 장치별 우선 순위를 결정하는 방법을 나타낸 표이다.
어플리케이션 1 어플리케이션 2 어플리케이션 3 ...
장치가 없을 때 0 0
Figure pat00005
Figure pat00006
장치 1
Figure pat00007
0 0
Figure pat00008
장치 2 0
Figure pat00009
0
Figure pat00010
장치 3 0
Figure pat00011
0
Figure pat00012
... ...
표 1은 I/O 장치별로 우선 순위를 계산하는 방법으로, 각 I/O 장치가 이용하는 어플리케이션별로 각각 가중치 인자를 계산해, 가중치 인자를 기반으로 계산된 하나의 I/O 장치에 대한 각 어플리케이션별 우선 순위를 더하는 방법을 이용한 경우이다. 이와 유사한 방법으로 어플리케이션별 우선 순위를 도출할 수도 있다. 범용 적응적 캐시 관리부는 표 1에서 계산된 우선 순위 정보가 클수록 높은 우선 순위를 부여할 수 있다.
범용 적응적 캐시 관리부는 표 1과 같이 결정된 우선 순위를 기반으로 특정 데이터에 대해 고속 데이터 처리가 필요하다고 판단되면 캐시로 데이터를 전송한다.
도 4는 범용 적응적 캐시 관리부가 캐시를 설정하는 방법을 도시한 도면이다.
도 4에 따르면, 범용 적응적 캐시 관리부는 캐시로 데이터를 전송하는 경우 캐시 사용 여부를 설정(400)하고, 캐시 사용 크기를 설정(410)하고, 캐시의 서비스 퀄리티(Quality of Service, QoS)를 설정(420)하여 캐시로 전송한 해당 데이터의 처리하도록 할 수 있다. 범용 적응적 캐시 관리부는 캐시 사용 여부를 YES로 설정하고, 캐시로 전송하는 해당 데이터에 따라 캐시의 사용 크기 및 QoS를 설정할 수 있다.
도 5는 본 특허에서 제안하는 장치를 상세하게 도시한 블록도이다.
칩(550)은 I/O 인터페이스(500), 범용 적응적 캐시 관리부(510), CPU(520), 버스(530) 및 메모리 및 DRAM(540)으로 구성되고, I/O 인터페이스는 범용 적응적 캐시 관리부와 연결되고, CPU는 범용 적응적 캐시 관리부와 버스와 연결되며, 버스는 메모리와 범용 적응적 캐시 관리부와 연결된다. 이 때 범용 적응적 캐시 관리부는 제어 및 데이터 채널(511), 판단부(regulator, 512), SFRs(Special Funtion Registers, 514), FIFO(First in first out, 513), 수정된 제어 및 데이터 채널(516) 및 모니터링부(monitor, 515)로 구성된다.
Wi-Fi, UBS, UFS등의 I/O 인터페이스를 통하여 해당 I/O 장치의 제어 신호와 데이터 신호가 제어 및 데이터 채널을 거쳐 전송된다. 제어 신호와 데이터 신호는 FIFO에 저장된다. 그리고 앞에서 설명한 네트워크 상황 관련 정보, 기기 상태 관련 정보, I/O 장치의 상태 정보를 모니터링부에서 입력받아 처리한다. 이러한 정보는 CPU 및 버스에서 전송될 수 있다. 네트워크 상황 관련 정보, 기기 상태 관련 정보, I/O 장치의 상태 정보를 기반으로 판단부는 전송되어 온 데이터의 고속 I/O 장치의 데이터인지 여부 및 데이터 처리의 본 발명에 기술된 방법으로 우선 순위를 판단한다. 판단부는 판단한 결과를 기반으로 제어 신호 및 데이터 신호를 수정해 수정된 제어 및 데이터 채널을 거쳐 해당 I/O 장치의 데이터를 캐시로 바로 전송하거나 메모리로 전송한다.
도 6은 본 발명을 실시할 수 있는 또다른 장치의 일례를 도시한 블록도이다.
도 6에 따르면, 도 6은 도 5의 구조에 캐시 일관성 인터커넥트(cache coherent interconnect, CCI, 600)을 포함하고 있다는 점에서 그 차이점이 있다. CCI는 멀티코어 시스템에서 캐시의 일관성을 제공하는 인터커넥트로 버스 및 범용 적응적 캐시 관리부에 연결되어 있다.
범용 적응적 캐시 관리부에서 수정된 제어 및 데이터 신호는 수정 제어 및 데이터 채널을 거쳐 CCI로 전송되고, CCI는 판단부에서 판단된 데이터의 우선 순위에 따라 해당 데이터를 캐시 또는 메모리로 전송한다.
도 7은 본 발명을 실시할 수 있는 또다른 장치의 일례를 도시한 블록도이다.
도 7에 따르면, 본 발명의 모바일 기기(700)은 제어부(710) 및 송수신부(720)을 포함할 수 있다. 이 때 도 5 및 도 6의 I/O 인터페이스(500), 범용 적응적 캐시 관리부(510), CPU(520), 버스(530) 및 메모리 및 DRAM(540)는 도 7의 제어부에 포함될 수 있다. 이 때 도 5 및 6과 마찬가지로 I/O 인터페이스는 범용 적응적 캐시 관리부와 연결되고, CPU는 범용 적응적 캐시 관리부와 버스와 연결되며, 버스는 메모리와 범용 적응적 캐시 관리부와 연결된다. 이 때 범용 적응적 캐시 관리부는 제어 및 데이터 채널(511), 판단부(regulator, 512), SFRs(Special Funtion Registers, 514), FIFO(First in first out, 513), 수정된 제어 및 데이터 채널(516) 및 모니터링부(monitor, 515)를 포함할 수 있다. 송수신부는 하나 이상의 I/O 장치를 포함할 수 있다.
<실시예 2>
본 발명에서는 데이터 전송 속도가 현저히 빨라진 현재의 I/O 장치의 데이터 및 네트워크를 통해 송수신되는 패킷(packet)(이하 네트워크 패킷, 네트워크 패킷은 I/O 장치의 데이터를 포함하도록 해석될 수 있다) 처리 성능의 향상을 위한 방법을 제안한다. 네트워크 패킷은 송수신되는 과정에서 다양한 검사를 거치게 된다. 그 예로 패킷 오류 검사, 보안 취약성 검사, 연결 정보 검사, 주소(IPv4(Internet Protocol version 4), IP46(Internet Protocol version 6), MAC 주소(media access control address)) 검사 등이 있으며, 메모리 및/또는 제어부는 이를 위한 검사 정책 및 검사 방법(rule)/표(table)을 관리한다. 종래에는 모든 송수신되는 네트워크 패킷에 대해 상기 기술한 검사를 순차적으로 수행하므로, 이는 네트워크 속도를 저하시키는 요인이 된다.
본 발명은 사용자 시나리오 및 모바일 기기의 상황 인지를 통해 네트워크 패킷을 선택적으로 검사하여 오버헤드를 감소시키고, 이를 통해 네트워크 속도를 향상시키는 것을 목적으로 한다.
본 발명은 연결 장치 정보, 사용자 시나리오, 검사 방식을 저장/관리하여 각 네트워크 패킷에 대해 적용할 검사 방식을 선택하는 것을 내용으로 한다. 선택한 검사 방식은 순차적 처리/병렬적 처리가 가능하며, 이를 위해 다양한 연산장치를 사용할 수 있다.
도 8은 본 발명을 위한 검사 방식 선택을 위한 정보 관리부를 도시한 것이다.
도 8에 따르면, 네트워크 패킷에 대한 검사 방식을 선택하기 위한 유닛(unit, 부)인 정보 관리부(800)는 연결 장치 정보(810), 사용자 시나리오(820) 및 검사 관련 정보(830)를 저장, 관리할 수 있다. 연결 장치 정보로는 LTE, Wi-Fi, 블루투스, USB 등과 같이 모바일 기기가 이용 가능한 네트워크에 대한 정보를 저장 및 관리할 수 있다. 사용자 시나리오는 네트워크를 이용해 송수신되는 패킷이 어떤 사용자 시나리오에서 송수신되는 것인지에 관련된 정보를 저장 및 관리할 수 있다. 사용자 시나리오의 예시로 모바일 기기는 사용자의 SNS(social networking service) 사용, 파일 다운로드(download), 모바일 핫스팟(hotspot), Wi-Fi 다이렉트(direct) 사용 등에 따른 패킷을 네트워크를 이용해 송수신할 수 있다. 또한 검사 관련 정보는 네트워크 패킷이 거쳐야 하는 오류 검사, 보안 검사, 연결 정보 검사, 주소 검사 등에 대한 정보를 포함한다.
도 9는 본 발명에 따라 정보 관리부가 선택적으로 네트워크 패킷 검사를 수행하는 방법을 도시한 도면이다.
도 9에 따르면, 정보 관리부는 네트워크 패킷에 대해 수행할 검사 방식을 선택(900)한다. 상기 선택은 연결 장치 정보와 사용자 시나리오를 고려해 수행될 수 있다. 검사 방식을 선택한다는 것은 검사에 필요한 필터링 함수를 등록하고, 상기 필터링 함수를 실행하는 것과 동일한 의미로 이해될 수 있다. 일례로, 일반적인 네트워크 패킷에 대해서는 오류 검사를 수행할 수 있고, 만약 오류가 검출된다면 오류 검사 및 보안 검사를 재수행할 수 있다. 이 결과 오류가 검출된 패킷이 보안상 문제가 있는 패킷이 아닌지에 대해 재검사할 수 있다. 또는 LTE 네트워크를 이용해 SNS 관련 네트워크 패킷을 송수신할 경우, 정보 관리부는 IPv4 주소 검사와 IPv6 주소 검사를 모두 수행하도록 선택하지 않고, IPv6 주소 검사만을 수행하도록 선택할 수 있다. 또한 Wi-Fi 네트워크를 이용해 SNS 관련 네트워크 패킷을 송수신할 경우 정보 관리부는 IPv4 주소 검사만을 수행하도록 선택할 수 있다. 이는 LTE 네트워크의 경우 주로 IPv6 를 사용하고, Wi-Fi의 경우 주로 IPv4를 사용하기 때문이다. 기술된 예가 아니더라도 정보 관리부는 네트워크에서 사용되는 방식의 주소 검사만을 수행하도록 선택할 수 있다. 또한 Wi-Fi 다이렉트에 따른 패킷을 송수신할 때, 이는 사용자 선택에 의해 직접 패킷을 송수신하는 것이므로, 네트워크 패킷에 보안 문제가 있을 여지가 적으므로 보안 검사를 제외하도록 선택할 수 있다. 또한 LTE/Wi-Fi 네트워크를 이용해 모바일 핫스팟에 따른 패킷을 송수신할 때, 상기 패킷에 대해서는 연결 정보에 대한 검사를 추가하도록 선택할 수 있다.
또한 정보 관리부는 검사 방식을 선택할 때 검사 방식 선택에 따른 빈번한 검사 방식 변경과 이로 인한 오버헤드를 절감하기 위해 지속시간 또는 주기 등을 판단하여 검사 방식을 변경하도록 제어할 수 있다. 일례로, LTE를 이용한 네트워크 패킷에 대해 일정 지속시간 또는 주기 동안 검사 방식을 선택하지 않고 이미 선택되어 수행된 검사 방식을 적용하도록 결정할 수 있다.
이후 수행할 검사 방식을 선택한 정보 관리부는 선택된 검사 방식을 적용해 검사하도록 제어(910)한다. 이때, 정보 관리부는 선택한 검사 방식을 로딩(메모리에 모듈 형태로 된 관련 필터링 함수를 로딩)하여 패킷 송수신시 검사를 수행하도록 제어할 수 있다. 이러한 방법은 패킷에 대해 필요한 검사만 수행하기 때문에 패킷 처리 시간을 단축할 수 있으며, 불필요한 메모리 낭비를 줄일 수 있다는 장점이 있다. 검사 방식 변경으로 제외된 검사 방식은 메모리에 언로딩하여 검사 방식에서 제외될 수 있으며, 여러 종류의 패킷이 동시에 송수신되는 경우 사용중인 앱(PID , 프로세스 ID(process ID)는 네트워크 패킷이 어느 어플리케이션과 관련된 것인지 구분하기 위해 사용될 수 있다)과 소스/목적지(source/destination) 포트 정보 등의 패킷 정보를 통해 패킷별로 서로 다른 검사 방식을 적용하는 것도 가능하다. 일례로 LTE(IPv6 방식 이용)과 Wi-Fi(IPv4 방식 이용)으로
도 10은 본 발명에 따라 선택된 검사 방식이 여러 개인 경우 정보 관리부가 네트워크 패킷 검사를 수행하는 방법을 도시한 도면이다. 이는 선택된 검사 방식이 여러 개인 경우 검사를 순차적으로 수행하거나 병렬적으로 수행하는 방법을 도시한 도면이다.
도 10에 따르면, 정보 관리부는 여러 개의 검사를 수행해야 할 경우 검사를 수행하는 방식을 선택(1000)한다. 정보 관리부는 순차적 처리 또는 병렬적 처리를 선택할 수 있다. 이때 정보 관리부는 CPU에 검사를 병렬적으로 처리할 수 있는 연산 자원이 존재하는지 여부, 검사를 병렬적으로 처리할 수 있는 연산 자원을 가진 장치의 존재 여부, 연산 자원을 타 어플리케이션이 사용하고 있는지 여부, 패킷의 크기 등을 고려해 순차적 처리 또는 병렬적 처리 여부를 선택할 수 있다. 또한 이 과정에서는 패킷의 긴급성에 따른 우선 순위가 고려될 수 있다. 만약 정보 관리부가 순차적 처리를 선택한다면, 정보 관리부는 검사의 우선 순위를 판단(1010)한다. 구체적으로, 정보 관리부는 사용 시나리오에 따라 검사 방식의 우선 순위를 결정하여 검사 초반에 패킷의 이상 여부를 검출할 수 있는 확률을 높일 수 있다. 일례로, 외부에서 공용 Wi-Fi를 사용하는 경우와 같이 보안 취약성이 높을 경우, 보안 검사의 우선 순위를 높여 보안 검사를 우선적으로 수행해 여러 개의 검사 중 검사 초반에 패킷의 문제를 발견할 확률을 높일 수 있다. 이후 정보 관리부는 결정된 우선 순위를 기반으로 순차적 검사를 수행하도록 제어(1020)한다.
만약 정보 관리부가 병렬적 처리를 선택한다면, 정보 관리부는 여러 연산 장치를 활용해 병렬적으로 여러 개의 검사를 수행(1030)한다. 이때 정보 관리부는 다중코어(multi-core) CPU, 병렬처리에 적합한 연산 장치(일례로 GPU(graphic process unit), DSP(digital signal processor) 또는 전용 하드웨어 장치를 이용해 여러 개의 검사를 병렬적으로 수행하도록 제어 가능하다.
도 11은 본 발명을 수행할 수 있는 장치를 상세하게 도시한 블록도이다.
도 11에 따르면, 도 11은 도 5에 범용 검사 코디네이터(1100, global inspection coordinator) 및 여러 개의 검사의 병렬 처리를 위한 HW 장치(1140), DSP(1150) 및 GPU(1160)가 추가된 장치를 도시하고 있다.
구체적으로, 범용 검사 코디네이터는 제어 및 데이터 채널(511) 및 수정된 데이터 채널(516)과 연결되어 있으며, 상태 검사부(1110, status checker), 검사 관리부(1120, inspection manager) 및 스케줄러(1130, job scheduler)을 포함할 수 있으며, 상태 검사부는 어플리케이션 및 모바일 장치의 상태를 체크하고, 검사 관리부는 상태 검사부로부터 어플리케이션 및 모바일 장치의 상태 정보 및 도 8의 연결 장치 정보(810), 사용자 시나리오(820) 및 검사 관련 정보(830)를 기반으로 어떤 검사를 수행할지 선택할 수 있다. 스케줄러는 하나 이상의 검사에 대해 순차적으로 처리할지 또는 병렬적으로 처리할지 판단하고, 이에 따라 검사를 수행하도록 제어할 수 있다. 또는 검사 관리부에서 결정된 여러 개의 검사에 대한 처리 방식에 따라 우선 순위를 판단하고 결정된 우선순위에 따라 순차적으로 검사를 수행하거나, 병렬적으로 검사를 수행하도록 다중 코어 CPU, HW 장치, DSP 및 GPU를 제어할 수 있다. 앞에 기술된 정보 관리부는 도 11의 범용 검사 코디네이터에 대응될 수 있고, 또는 도 11의 검사 관리부에 대응될 수도 있다. 범용 검사 코디네이터와 범용 적응적 캐시 관리부를 합쳐 범용 코디네이터(1170)으로 칭할 수 있으며, 범용 코디네이터는 CPU(520) 및 버스(530)과 연결되어 있다. 또는 도시되지 않았으나 도 5에 따라 수정된 제어 및 데이터 채널(516)은 캐시(521)와 버스와 연결되어 있을 수 있다. 또한 도 11은 선택적 검사 수행시 이용될 수 있다.
도 12는 본 발명을 수행할 수 있는 장치의 또다른 일례를 상세하게 도시한 블록도이다.
도 12에 따르면, 도 12는 도 11의 구조에 캐시 일관성 인터커넥트(cache coherent interconnect, CCI, 600)을 포함하고 있다는 점에서 그 차이점이 있다. CCI는 멀티코어 시스템에서 캐시의 일관성을 제공하는 인터커넥트로 버스 및 범용 적응적 캐시 관리부에 연결되어 있다. 범용 적응적 캐시 관리부에서 수정된 제어 및 데이터 신호는 수정 제어 및 데이터 채널을 거쳐 CCI로 전송되고, CCI는 판단부에서 판단된 데이터의 우선 순위에 따라 해당 데이터를 캐시 또는 메모리로 전송한다. 또한 도 12은 병렬적으로 검사를 수행할 경우 이용될 수 있다.
도 13은 본 발명을 수행할 수 있는 장치의 또다른 일례를 도시한 블록도이다.
도 13에 따르면, 본 발명의 모바일 기기(1300)은 제어부(1310) 및 송수신부(1320)을 포함할 수 있다. 이 때 도 11 및 도 12의 I/O 인터페이스(500), 범용 적응적 캐시 관리부(510), CPU(520), 버스(530), 메모리 및 DRAM(540), HW 장치(1140), DSP(1150) 및 GPU(1160)은 도 13의 제어부에 포함될 수 있다. 이 때 도 11 및 12과 마찬가지로 I/O 인터페이스는 범용 코디네이터(1170)와 연결되고, CPU는 범용 코디네이터와 버스와 연결되며, 버스는 메모리와 범용 코디네이터와 연결된다. 이 때 범용 코디네이터는 범용 적응적 캐시 관리부(510) 및 범용 검사 코디네이터(1100)를 포함할 수 있다. 송수신부는 하나 이상의 I/O 장치를 포함할 수 있다.
본 발명에 따르면 고속 I/O 장치의 데이터 처리 속도 향상 및 사용중인 어플리케이션의 성능 감소 현상을 개선시킬 수 있다. 또한 본 발명에 따르면, 불필요한 네트워크 패킷에 대한 검사를 제거하여 네트워크 패킷 처리 속도를 향상시키고, 그에 따른 소모 전류 절감과 메모리 낭비를 최소화할 수 있다.

Claims (13)

  1. 데이터를 처리하는 방법에 있어서,
    데이터를 처리하는 방법에 관련된 정보를 수신하는 단계;
    상기 데이터를 처리하는 방법에 관련된 정보를 기반으로 상기 데이터를 캐시(cache)로 전송할지, 메모리(memory)로 전송할지 결정하는 단계를 포함하는 것을 특징으로 하는 데이터 처리 방법.
  2. 제 1항에 있어서,
    상기 데이터를 처리하는 방법에 관련된 정보는 네트워크 상황 관련 정보, 기기 상태 관련 정보 및 입출력 상태 정보 중 적어도 하나인 것을 특징으로 하는 데이터 처리 방법.
  3. 제 2항에 있어서,
    상기 결정 단계는 상기 데이터를 처리하는 방법에 관련된 정보를 기반으로 각 데이터별 가중치 인자(weight factor)를 계산하는 단계를 더 포함하는 것을 특징으로 하는 데이터 처리 방법.
  4. 제 1항에 있어서,
    상기 데이터는 입출력 장치(I/O unit)별 데이터인 것을 특징으로 하는 데이터 처리 방법.
  5. 제 1항에 있어서,
    상기 데이터를 상기 캐시로 전송하기로 결정한 경우, 상기 캐시의 사용 여부, 사용 크기 및 서비스 퀄리티(Quality of Service, QoS) 중 적어도 하나를 더 설정하는 단계를 포함하는 것을 특징으로 하는 데이터 처리 방법.
  6. 제 3항에 있어서,
    상기 결정 단계는 상기 각 데이터별 가중치 인자(weight factor)를 합산해 각 데이터의 우선 순위를계산해 비교하는 단계를 더 포함하는 것을 특징으로 하는 데이터 처리 방법.
  7. 제 1항에 있어서,
    상기 데이터를 캐시로 전송하도록 결정한 경우, 상기 데이터를 캐시로 전송하도록 제어하고, 상기 데이터를 메모리로 전송하도록 결정한 경우, 상기 데이터를 메모리로 전송하도록 제어하는 단계를 더 포함하는 것을 특징으로 하는 데이처 처리 방법.
  8. 데이터를 처리하는 캐시 관리부에 있어서,
    입출력(I/O) 인터페이스로부터 전송된 상기 데이터를 수신하는 FIFO(first-in first-out);
    데이터를 처리하는 방법에 관련된 정보를 수신하는 모니터링부;
    상기 FIFO로부터 상기 데이터를 수신하고, 상기 모니터링부로부터 상기 데이터를 처리하는 방법에관련된 정보를 수신하고, 상기 데이터를 처리하는 방법에 관련된 정보를 기반으로 데이터를 캐시(cache)로 전송할지, 메모리(memory)로 전송할지 결정하고, 상기 판단에 따라 상기 데이터를 캐시로 전송하거나 메모리로 전송하도록 제어하는 판단부를 포함하는 것을 특징으로 하는 캐시 관리부.
  9. 제 8항에 있어서,
    상기 데이터를 처리하는 방법에 관련된 정보는 네트워크 상황 관련 정보, 기기 상태 관련 정보 및 입출력 상태 정보 중 적어도 하나인 것을 특징으로 하는 캐시 관리부.
  10. 제 9항에 있어서,
    상기 판단부는 상기 데이터를 처리하는 방법에 관련된 정보를 기반으로 각 데이터별 가중치 인자(weight factor)를 계산해 상기 결정을 수행하는 것을 특징으로 하는 캐시 관리부.
  11. 제 8항에 있어서,
    상기 데이터는 입출력 장치(I/O unit)별 데이터인 것을 특징으로 하는 캐시 관리부.
  12. 제 8항에 있어서,
    상기 판단부는 상기 데이터를 상기 캐시로 전송하기로 결정한 경우, 상기 캐시의 사용 여부, 사용 크기 및 서비스 퀄리티(Quality of Service, QoS) 중 적어도 하나를 더 설정하는 단계를 포함하는 것을 특징으로 하는 캐시 관리부.
  13. 제 10항에 있어서,
    상기 판단부는 상기 각 데이터별 가중치 인자(weight factor)를 합산해 각 데이터의 우선 순위를 계산해 비교하는 것을 특징으로 하는 캐시 관리부.
KR1020150148932A 2015-09-03 2015-10-26 적응적으로 캐시를 관리하는 방법 및 장치 KR102362941B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/KR2016/009857 WO2017039393A1 (en) 2015-09-03 2016-09-02 Method and apparatus for adaptive cache management
EP16842359.8A EP3345096B1 (en) 2015-09-03 2016-09-02 Method and apparatus for adaptive cache management
CN201680050701.3A CN108027774B (zh) 2015-09-03 2016-09-02 用于自适应缓存管理的方法和装置
US15/255,469 US10193905B2 (en) 2015-09-03 2016-09-02 Method and apparatus for adaptive cache management

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150124892 2015-09-03
KR20150124892 2015-09-03

Publications (2)

Publication Number Publication Date
KR20170028228A true KR20170028228A (ko) 2017-03-13
KR102362941B1 KR102362941B1 (ko) 2022-02-16

Family

ID=58411807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150148932A KR102362941B1 (ko) 2015-09-03 2015-10-26 적응적으로 캐시를 관리하는 방법 및 장치

Country Status (2)

Country Link
EP (1) EP3345096B1 (ko)
KR (1) KR102362941B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021236800A1 (en) * 2020-05-21 2021-11-25 Micron Technology, Inc. Adaptive cache
US11409657B2 (en) 2020-07-14 2022-08-09 Micron Technology, Inc. Adaptive address tracking
US11422934B2 (en) 2020-07-14 2022-08-23 Micron Technology, Inc. Adaptive address tracking
US11507516B2 (en) 2020-08-19 2022-11-22 Micron Technology, Inc. Adaptive cache partitioning

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100095367A1 (en) * 2008-10-09 2010-04-15 Juniper Networks, Inc. Dynamic access control policy with port restrictions for a network security appliance
US20130291088A1 (en) * 2012-04-11 2013-10-31 Choung-Yaw Michael Shieh Cooperative network security inspection
EP2838230A2 (en) * 2010-10-27 2015-02-18 Interdigital Patent Holdings, Inc. Scalable policy-controlled packet inspection systems and methods for advanced application interface
EP2903220A1 (en) * 2012-09-27 2015-08-05 Samsung Electronics Co., Ltd. Method and apparatus for processing packet

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012167184A2 (en) * 2011-06-02 2012-12-06 Interdigital Patent Holdings, Inc. Methods, apparatus, and systems for managing converged gateway communications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100095367A1 (en) * 2008-10-09 2010-04-15 Juniper Networks, Inc. Dynamic access control policy with port restrictions for a network security appliance
EP2838230A2 (en) * 2010-10-27 2015-02-18 Interdigital Patent Holdings, Inc. Scalable policy-controlled packet inspection systems and methods for advanced application interface
US20130291088A1 (en) * 2012-04-11 2013-10-31 Choung-Yaw Michael Shieh Cooperative network security inspection
EP2903220A1 (en) * 2012-09-27 2015-08-05 Samsung Electronics Co., Ltd. Method and apparatus for processing packet

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021236800A1 (en) * 2020-05-21 2021-11-25 Micron Technology, Inc. Adaptive cache
US11294808B2 (en) 2020-05-21 2022-04-05 Micron Technology, Inc. Adaptive cache
US11693775B2 (en) 2020-05-21 2023-07-04 Micron Technologies, Inc. Adaptive cache
US11409657B2 (en) 2020-07-14 2022-08-09 Micron Technology, Inc. Adaptive address tracking
US11422934B2 (en) 2020-07-14 2022-08-23 Micron Technology, Inc. Adaptive address tracking
US11507516B2 (en) 2020-08-19 2022-11-22 Micron Technology, Inc. Adaptive cache partitioning

Also Published As

Publication number Publication date
EP3345096B1 (en) 2020-12-23
KR102362941B1 (ko) 2022-02-16
EP3345096A4 (en) 2018-08-22
EP3345096A1 (en) 2018-07-11

Similar Documents

Publication Publication Date Title
WO2013171365A1 (en) Method and apparatus for network traffic offloading
US11115871B2 (en) Data distribution method, apparatus, and system
US11496913B2 (en) Load migration method, apparatus, and system
KR20170028228A (ko) 적응적으로 캐시를 관리하는 방법 및 장치
CN113115331B (zh) 控制方法及通信装置
US9374731B2 (en) Method and radio network node for managing radio resources
JP2013546232A (ja) ワイヤレス通信環境において送信する複数のアクセス端末ための分散チャネルアクセスを可能にすること
WO2022012417A1 (zh) 冲突处理方法及装置
CN112422251B (zh) 数据传输方法及装置、终端、存储介质
JP6477916B2 (ja) 発見情報の伝送方法、装置及び通信システム
US20230147734A1 (en) Communication method and apparatus
CN108027774B (zh) 用于自适应缓存管理的方法和装置
CN110731109B (zh) 一种资源指示方法、设备和计算机存储介质
US11678319B2 (en) Dynamic allocation of transmission slots based on UE information
CN114125948A (zh) 一种最大业务资源门限确定方法、装置及存储介质
US11871426B2 (en) Pre-configured and fast uplink bit rate switching
WO2016150109A1 (zh) 一种用户设备调度方法、装置和系统
WO2020244334A1 (zh) 缓冲区状态报告的传输方法及终端
WO2022206884A1 (zh) Sps pdsch接收方法、装置、终端和存储介质
CN113453281B (zh) 一种无线网络的负荷均衡方法、装置、设备及存储介质
WO2023020077A1 (zh) 资源感知方法、终端及计算机可读存储介质
KR102049044B1 (ko) 트랜스포트 네트워크에서 통신 경로 제어 방법 및 장치
CN117999848A (zh) 来自多个设备的具有联合的服务质量要求的数据流
CN115866092A (zh) 数据转发方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right