KR102160414B1 - 하위 호환성을 위한 레거시 버스 동작 시뮬레이션 - Google Patents

하위 호환성을 위한 레거시 버스 동작 시뮬레이션 Download PDF

Info

Publication number
KR102160414B1
KR102160414B1 KR1020187024048A KR20187024048A KR102160414B1 KR 102160414 B1 KR102160414 B1 KR 102160414B1 KR 1020187024048 A KR1020187024048 A KR 1020187024048A KR 20187024048 A KR20187024048 A KR 20187024048A KR 102160414 B1 KR102160414 B1 KR 102160414B1
Authority
KR
South Korea
Prior art keywords
bus
legacy
new device
bandwidth
controlling
Prior art date
Application number
KR1020187024048A
Other languages
English (en)
Other versions
KR20180104077A (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 주식회사 소니 인터랙티브 엔터테인먼트
Publication of KR20180104077A publication Critical patent/KR20180104077A/ko
Application granted granted Critical
Publication of KR102160414B1 publication Critical patent/KR102160414B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/3625Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Abstract

새 장치에서 레거시 애플리케이션을 실행할 때 버스 동작의 차이로 인해 발생하는 문제를 해결하기 위해, 새 장치는 레거시 애플리케이션을 실행할 때 레거시 장치의 버스 동작을 에뮬레이션하는 방식으로 버스 성능을 통제할 수 있다.

Description

하위 호환성을 위한 레거시 버스 동작 시뮬레이션
본 출원은 본 출원은 공동 양도된 미국 특허 가출원 제 62/284 호(2016 년 1 월 22 일자로 출원됨)의 이익을 주장하며, 그 전체 내용은 본 명세서에 참고로 포함된다.
새로운 컴퓨터 아키텍처가 출시되면 이전 버전의 아키텍처용으로 작성된 애플리케이션이 새로운 아키텍처에서 완벽하게 실행되는 것이 바람직하다. 이 기능은 종종 "하위 호환성"(backwards compatibility)이라 지칭된다. 하위 호환성을 구현하려면 새 호스트 아키텍처에서 대상 레거시 장치를 에뮬레이션(emulation)하여 새로운 아키텍처가 레거시 용으로 작성된 프로그램의 명령어를 실행할 수 있도록 해야 한다. 컴퓨터 아키텍처는 시간이 지남에 따라 버스, 클럭 속도, 프로세서 아키텍처, 캐싱, 표준 등의 기술적 진보를 이용하기 위해 변화한다. 하나의 컴퓨터 아키텍처가 새로운 아키텍처로 대체되면, 이전 아키텍처가 레거시 아키텍처(legacy architecture)로 바뀐다. 개발 과정에서 네트워크 프로토콜, 사용자 인터페이스, 오디오 처리, 장치 드라이버, 그래픽 처리, 메시징, 워드 프로세서, 스프레드 시트, 데이터베이스 프로그램, 게임 및 기타 애플리케이션과 같은 소프트웨어 애플리케이션은 레거시 아키텍처용으로 작성된다. 이러한 레거시 소프트웨어는 새로운 아키텍처로 업그레이드하더라도 여전히 사용자에게 가치가 있다. 따라서 새로운 아키텍처에서 레거시 소프트웨어를 실행할 수 있어야 한다.
새 장치 및 레거시 장치의 하드웨어 구성 요소 성능 차이로 인해 새 장치에서 동기화 오류가 발생할 수 있어서, 새 장치 아키텍처에서 실행될 때 레거시 애플리케이션이 충돌할 수 있다. 이러한 성능 차이는, 예를 들어, 새 장치와 레거시 장치 사이의 버스 구조의 차이로부터 발생할 수 있다. 버스 아키텍처는 여러 장치 구성 요소들 간에 여러 데이터 경로를 제공한다. 레거시 장치 및 새 장치는 장치 구성 요소들 간의 타이밍 및 데이터 전송 속도에 대한 상이한 제약과 함께, 장치 구성 요소들 간에 상이한 버스 경로를 가질 수 있다. 예를 들어, 새 장치의 두 구성 요소 사이의 버스 경로가 레거시 장치의 해당 구성 요소 사이의 해당 버스 경로보다 빠르면, 한 구성 요소에서 여전히 사용중인 데이터가 다른 구성 요소에 의해 조기에 덮어쓰기될 수 있다.
새 장치에서 레거시 애플리케이션을 실행할 때 버스 동작의 차이로 인해 발생하는 문제를 해결하기 위해, 새 장치는 레거시 애플리케이션을 실행할 때 레거시 장치의 버스 동작을 에뮬레이션하는 방식으로 버스 성능을 통제할 수 있다.
새로운 시스템상의 버스 통제(bus throttling)는 레거시 버스의 동작으로부터 결정된 추정된 대역폭 할당에 기초할 수 있다. 버스 트래픽은 레거시 버스 동작에서 추정된 양에 따라 특정 버스 트랜잭션에 할당된 사용 가능한 버스 대역폭의 양을 제한함으로써 통제될 수 있다. 새 장치가 적어도 레거시 시스템에 의해 할당된 만큼의 대역폭을 할당하지만 레거시 애플리케이션 실행시 동기화 오류가 발생할 만큼은 아니도록, 버스 트래픽이 제한된다. 새 장치에서 레거시 애플리케이션을 실행하는 동안 통제를 조정하여, 실행시 문제가 되는 추가 대역폭 할당을 결정할 수 있다.
본 개시의 교시는 첨부된 도면과 함께 다음의 상세한 설명을 고려함으로써 용이하게 이해될 수 있다:
도 1은 본 발명의 양태에 따른 신규 및 레거시 장치들 간의 버스 아키텍처의 차이를 설명하도록 구성된 장치를 나타낸 블록도이다.
도 2는 본 개시의 양태에 따른 새 장치와 레거시 장치 사이의 버스 구조의 차이를 고려하여 대역폭 할당을 결정하기 위한 경험적 접근법을 나타내는 흐름도이다.
다음의 상세한 설명은 예시의 목적을 위한 다수의 특정 세부 사항을 포함하지만, 당업자라면 다음의 상세한 설명에 대한 많은 변형 및 변경이 청구된 발명의 범위 내에 있음을 알 수 있을 것이다. 따라서, 하기에 기술된 본 발명의 예시적인 실시예들은 청구된 발명에 대한 일반성의 손실없이 그리고 제한을 부과하지 않고 개시된다.
도 1은 레거시 장치 용으로 작성된 애플리케이션을 실행할 때 레거시 장치와 새 장치 간의 버스 아키텍처의 차이를 설명하도록 구성된 새 장치의 예를 도시한다. 이 예에서, 새 장치는 공통 메모리(106) 및 I/O 액세스 제어기(108)에 연결된 멀티 코어 CPU 및 멀티 코어 GPU를 포함할 수 있다. 각 CPU 또는 GPU 코어는 백사이드 버스(BSB1, BSB2)를 통해 레벨 2 캐시(110) 및 버스 인터페이스 유닛(112)에 연결된다. 레벨 2 캐시(110)는 프론트사이드 버스(FSB)에 의해 메모리(106) 및 I/O 액세스 제어기(108)에 연결된다. 추가 메모리(도시하지 않음), 주변 장치(114), 비디오(116) 및 데이터 저장 장치(118)는 다양한 버스에 의해 액세스 제어기를 통해 CPU 및 GPU와 인터페이싱한다. CPU 및 GPU는 데이터 및/또는 명령어의 임시 저장을 위한 구성가능 레지스터(105)를 포함할 수 있다. 도 1의 장치의 레거시 버전은 상이한 아키텍처를 가질 수 있는데, 예를 들어 CPU 및 GPU를 위한 별도의 버스가 있고 메모리 및 I/O 액세스를 위한 별도의 제어기가 있는 아키텍처를 가질 수 있다.
도 1에 도시된 예에서, 액세스 제어기(108)는, 예를 들어 메모리(106)에 저장된 코드 명령어(103)를 실행함으로써, 레거시 애플리케이션을 실행할 때 레거시 버스 동작을 에뮬레이션하고 동기화를 유지하도록 버스 성능을 통제한다. 액세스 제어기는 레거시 장치에서 버스의 동작을 에뮬레이션하는 방식으로 사용 가능한 버스 대역폭을 할당함으로써, 다양한 버스 BSB1, BSB2, FSB상의 버스 트래픽을 통제한다(108). 이러한 통제는 레거시 장치의 버스 성능 데이터를 통해 알려진다. 이 데이터를 생성하기 위해, 레거시 장치가 레거시 애플리케이션을 실행하는 동안 테스트될 수 있다. 상이한 버스 클라이언트들에 대한 버스 대역폭 할당은 상이한 조건 하에서 측정된다. 특정 버스 트랜잭션에 할당된 대역폭에 영향을 미칠 수 있는 요소는 버스(가령, CPU(102) 또는 GPU(104))에 액세스하는 특정 버스 클라이언트, 버스를 통해 전송되는 데이터의 소스 또는 대상(예: 메모리(106)), 데이터가 판독되고 있는지 또는 기록되고 있는지 여부, 트랜잭션이 높은 우선 순위 또는 낮은 우선 순위를 가졌는지 여부, 요청되는 대역폭의 양, 어느 다른 버스 클라이언트가 버스 대역폭 등을 위해 경쟁하고 있는지, 등을 포함한다. 이러한 모든 요소는 버스 대역폭 할당과 함께 레거시 장치의 검사 중 레코딩될 수 있다.
레거시 버스 동작을 에뮬레이션하는 방법에는 적어도 3개의 접근 방식, 즉, 표 기반 접근 방식, 비율 기반 접근 방식 및 경험적 접근 방식이 있다. 세 가지 접근 방식 모두 레거시 장치가 상이한 환경에서 상이한 클라이언트에 실제로 할당하는 대역폭을 보고, 동일 또는 유사한 상황에서 새 장치로 이러한 할당을 복제한다. 테스트 단계에서, 특정 클라이언트와 특정 리소스 사이(또는 특정 클라이언트 간)의 이전 하드웨어에 대한 대역폭 할당은 상이한 상황에서 측정된다. 측정된 대역폭 할당 값은 새 하드웨어에 대한 표(table) 또는 비율 또는 경험치에 배치된다.
표 기반 접근법
표 기반 접근 방식에서, 새 장치는 메모리(106) 또는 구성 가능 레지스터(105)에 저장된 순람표(lookup table)를 사용하여 상이한 버스 트래픽 조건 하에서 노드들 간에 대역폭을 할당한다. 간단한 예로, 메모리 트랜잭션을 위해 사용 가능한 버스 대역폭 30MB/s에 대해 경쟁하는 두 개의 버스 클라이언트 A와 B가 있다고 가정한다. 아래 표 I은 레거시 장치에 대해 측정된 성능(즉, 버스 대역폭 할당)에 기초하여 클라이언트 A와 B 사이에 할당된 대역폭을 나타낸다.
표 1
Figure 112018082733332-pct00001
표 1에서, 주어진 요청된 대역폭에 대해 할당된 대역폭은 A/B로 표시되며, 여기서 A는 클라이언트 A에 할당된 대역폭이고 B는 클라이언트 B에 할당된 대역폭이다. 표 1의 값은 레거시 애플리케이션을 이용하여 정상 동작 중 레거시 장치의 버스 대역폭 할당을 모니터링함으로써 결정될 수 있다. 요청된 대역폭과는 다른 다수의 요인들(가령, 대역폭이 판독 또는 기록 동작에 대해 요청되었는지 여부, A' 및 B'의 요청의 상대적 우선순위)이 대역폭 할당에 영향을 미칠 수 있다. 표는 이러한 요인들을 고려할 수 있다.
비율 기반 접근법
비율 기반 접근법은 메모리(106) 또는 구성 가능 레지스터(105)에 저장된 표가 비율 측면에서 대역폭 할당을 명시하는 점을 제외하곤, 표 기반 접근법과 유사하다. 예를 들어 표 2는 사용 가능한 최대 버스 대역폭의 백분율로 대역폭 요청 및 할당을 보여준다.
표 2
Figure 112018082733332-pct00002
위에 2차원 예제가 나와 있지만 표 또는 비율 기반 접근법은 3, 4 또는 그 이상의 차원으로 확장되어 3개, 4개, 또는 그 이상의 상이한 버스 클라이언트들을 수용할 수 있다. 또한, 서로 다른 그룹의 고객에게 서비스를 제공하는 여러 개의 상이한 버스가 있는 경우 표 또는 비율이 이를 고려할 수 있다.
경험적 접근법
경험적 접근법은 레거시 버스 동작의 컴퓨터 모델(201)을 사용하여 대역폭 할당을 결정한다. 도 2는 일례를 도시한다. 클라이언트 A와 B 사이의 소정의 버스 트랜잭션에 대해, 경험법은 현재의 버스 트래픽, 요청된 대역폭, 대역폭을 요청하는 클라이언트, 트래픽에 대한 목적지, 등에 관한 입력을 수신한다. 도 2에서, 입력들은 각각 클라이언트 A 및 클라이언트 B로부터의 대역폭 요청들(202, 204)이다. 그런 다음 경험법은 동일하거나 유사한 환경 하에서 레거시 버스의 동작에 관한 데이터(208)를 사용하여 클라이언트 A와 B 사이의 버스 경로, 버스 중재(206) 등의 행동을 모델링한다. 레거시 버스 거동 데이터는 경험법에 의한 신속한 액세스를 위해 로컬 메모리에 저장될 수 있다. 이러한 모델링은 대역폭 요청, 현재 버스 조건 및 레거시 버스 데이터를 고려하여, 클라이언트 A 및 클라이언트 B에 대한 추정된 버스 대역폭 할당을 결정한다. 버스 제어기, 예를 들어 버스 인터페이스(112)는 이러한 할당을 사용하여 버스 트래픽을 통제할 수 있다.
표, 비율 및 경험적 방식은 주어진 상황에서 레거시 버스 대역폭을 할당하는 이유보다 방식에 더 집중한다. 레거시 버스 대역폭 조정은 데이터가 클라이언트로부터 판독되고 있는지 기록되고 있는지 여부, 트랜잭션이 높은 우선 순위 또는 낮은 우선 순위를 가졌는지 여부, 요청되는 대역폭의 양 등에 따라 달라질 수 있다. 레거시 버스 대역폭 할당이 충분히 예측 가능한 경우, 이들이 표, 비율 또는 경험적 방식으로 복제될 수 있다.
위젯이 메모리(106) 및 I/O 제어기(108)에 의해 구현될 필요가 없다. 다른 구현 예에서, 버스 클라이언트 A, B는 자체-통제될 수 있다. 특히, 각각의 버스 클라이언트는 버스 트래픽을 조사하여 처리할 수 있는 것보다 더 많은 대역폭을 레거시 시스템에 요청하고 있는지를 결정하고 충분한 대역폭이 가용하다고 결정할 때까지 요청을 보류할 것인지를 결정하기 위한 위젯(109)을 포함할 수 있다. 이러한 위젯 각각은 구성 가능한 레지스터(111)에 저장된 표, 비율 또는 경험치에 액세스할 수 있다.
이상이 본 발명의 바람직한 실시예에 대한 완전한 설명이지만, 다양한 대안, 변형 및 균등물을 사용할 수 있다. 그러므로, 본 발명의 범위는 상기 설명을 참조하여 결정될 것이 아니라, 그 대신 균등물의 전체 범위와 함께 첨부된 청구 범위를 참조하여 결정되어야한다. 선호 여부에 관계없이 모든 기능은 선호 여부와 상관없이 다른 기능과 결합될 수 있다. 뒤 따르는 청구 범위에서, 부정관사에 해당하는 "하나의" 또는 "일"은 달리 명시적으로 언급된 경우를 제외하고는 다음에 이어지는 하나 이상의 항목을 의미한다. 첨부된 청구항은 "~를 위한 수단"(means for)이라는 문구를 사용하여 주어진 청구항에 명시적으로 언급된 경우가 아니면 수단+기능의 제한을 포함하는 것으로 해석되어서는 안된다. 명시된 기능을 수행하기 "위한 수단"을 명시적으로 언급하지 않는 청구항의 어떤 요소도, 35 USC §112(f)에 명시된 "수단" 또는 "단계" 조항으로 해석되어서는 안된다.

Claims (25)

  1. 새 장치상에서 레거시 애플리케이션을 실행할 때 버스 동작의 차이로 인해 발생하는 문제를 해결하는 방법으로서,
    레거시 장치에서 상기 버스의 상기 동작을 에뮬레이션하는 방식으로 사용 가능한 버스 대역폭을 할당함으로써, 상기 레거시 애플리케이션을 실행할 때 레거시 장치의 버스 동작을 에뮬레이션하는 방식으로 새 장치에 대한 버스 성능을 통제(throttling)하는 단계를 포함하는, 문제 해결 방법.
  2. 제 1 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 단계는 레거시 버스의 동작으로부터 결정된 추정 대역폭 할당에 기초하는 문제 해결 방법.
  3. 제 1 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 단계는 상기 레거시 장치상의 레거시 버스의 동작으로부터 추정된 양에 따라 특정 버스 트랜잭션에 할당된 사용 가능한 버스 대역폭의 양을 제한하는 단계를 포함하는 문제 해결 방법.
  4. 제 1 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 단계는 상기 새 장치가 적어도 레거시 시스템에 의해 할당되었을 만큼의 대역폭을 할당하지만 상기 레거시 애플리케이션의 실행시 동기화 오류가 발생할 만큼의 대역폭을 할당하지는 않도록 상기 새 장치에 대한 버스 트래픽을 통제하는 단계를 포함하는 문제 해결 방법.
  5. 제 1 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 단계는, 얼마나 많은 추가 대역폭 할당이 실행시 문제를 야기하는지를 결정하기 위해 상기 새 장치 상에서 레거시 애플리케이션들을 실행하는 동안 상기 버스 성능을 조정하는 단계를 포함하는 문제 해결 방법.
  6. 제 1 항에 있어서, 상기 새 장치는 메모리 또는 구성 가능한 하드웨어 레지스터에 저장된 순람표를 사용하여, 상이한 버스 트래픽 조건 하에서 상기 새 장치의 노드들 간에 대역폭을 할당하는 문제 해결 방법.
  7. 제 1 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 단계는 대역폭 할당을 결정하기 위해 레거시 버스의 동작의 컴퓨터 모델을 이용하는 단계를 포함하는 문제 해결 방법.
  8. 제 1 항에 있어서, 상기 새 장치는 메모리 또는 구성 가능한 하드웨어 레지스터에 저장된 하나 이상의 비율을 사용하여, 상이한 버스 트래픽 조건 하에서 상기 새 장치의 노드들 간에 대역폭을 할당하는 문제 해결 방법.
  9. 시스템에 있어서,
    하나 이상의 프로세서;
    하나 이상의 버스에 의해 상기 하나 이상의 프로세서에 동작 가능하게 결합된 메모리;
    상기 메모리에 저장되고 상기 프로세서에 의해 실행가능한 실행가능 명령어 - 상기 명령어는 실행될 때 상기 프로세서로 하여금 상기 시스템으로 새 장치 상에서 레거시 애플리케이션을 실행할 때 버스 동작의 차이로 인해 발생하는 문제점을 해결하기 위한 방법을 구현하게 함 - 를 포함하되, 상기 방법은,
    레거시 장치에서 상기 버스의 상기 동작을 에뮬레이션하는 방식으로 사용 가능한 버스 대역폭을 할당함으로써, 상기 레거시 애플리케이션을 실행할 때 레거시 장치의 버스 동작을 에뮬레이션하는 방식으로 상기 새 장치에 대한 버스 성능을 통제하는 단계를 포함하는, 시스템.
  10. 제 9 항에 있어서, 상기 하나 이상의 버스에 대한 버스 성능을 통제하는 단계는 레거시 버스의 동작으로부터 결정된 추정 대역폭 할당에 기초하는 시스템.
  11. 제 9 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 단계는 상기 레거시 장치상의 레거시 버스의 동작으로부터 추정된 양들에 따라 특정 버스 트랜잭션들에 대해 할당된 이용 가능한 버스 대역폭의 양을 제한하는 단계를 포함하는 시스템.
  12. 제 9 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 단계는 상기 새 장치가 적어도 레거시 시스템에 의해 할당되었을만큼의 대역폭을 할당하지만 상기 레거시 애플리케이션 실행시 동기화 오류를 발생시킬 만큼의 대역폭을 할당하지는 않도록 상기 새 장치에 대한 버스 트래픽을 통제하는 단계를 포함하는 시스템.
  13. 제 9 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 단계는, 얼마나 많은 추가 대역폭 할당이 실행시 문제를 야기하는지를 결정하기 위해 상기 새 장치상에서 레거시 애플리케이션들을 실행하는 동안 상기 버스 성능을 조정하는 단계를 포함하는 시스템.
  14. 제 9 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 단계는 상이한 버스 트래픽 조건들 하에서 상기 새 장치의 노드들 간에 대역폭을 할당하기 위해 메모리 또는 구성 가능한 하드웨어 레지스터들에 저장된 순람표를 이용하는 단계를 포함하는 시스템.
  15. 제 9 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 단계는 대역폭 할당을 결정하기 위해 레거시 버스의 동작의 컴퓨터 모델을 이용하는 단계를 포함하는 시스템.
  16. 제 9 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 것은 메모리 또는 구성 가능한 하드웨어 레지스터에 저장된 하나 이상의 비율을 사용하여 상이한 버스 트래픽 조건 하에서 상기 새 장치의 노드들 간에 대역폭을 할당하는 것을 포함하는 시스템.
  17. 제 9 항에 있어서, 상기 하나 이상의 프로세서는 하나 이상의 중앙 프로세서 유닛을 포함하는 시스템.
  18. 새 장치상에서 레거시 애플리케이션을 실행할 때 버스 동작의 차이로 인해 발생하는 문제를 해결하기 위한 방법을 컴퓨팅 장치로 구현하도록 구성된 실행 가능 명령어를 저장한 비-일시적 컴퓨터 판독 가능 매체로서, 상기 방법은,
    레거시 장치에서 상기 버스의 상기 동작을 에뮬레이션하는 방식으로 사용 가능한 버스 대역폭을 할당함으로써, 상기 레거시 애플리케이션을 실행할 때 레거시 장치의 버스 동작을 에뮬레이션하는 방식으로 상기 새 장치에 대한 버스 성능을 통제하는 단계를 포함하는, 비-일시적 컴퓨터 판독 가능 매체.
  19. 제 18 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 단계는 레거시 버스의 동작으로부터 결정된 추정된 대역폭 할당에 기초하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
  20. 제 18 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 단계는 상기 레거시 장치상의 레거시 버스의 동작으로부터 추정된 양에 따라 특정 버스 트랜잭션에 할당된 사용 가능한 버스 대역폭의 양을 제한하는 단계를 포함하는 비-일시적 컴퓨터 판독 가능 매체.
  21. 제 18 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 단계는 상기 새 장치가 적어도 레거시 시스템에 의해 할당되었을 만큼의 대역폭을 할당하지만 상기 레거시 애플리케이션의 실행시 동기화 오류를 발생시킬 만큼의 대역폭을 할당하지는 않도록 상기 새 장치에 대한 버스 트래픽을 통제하는 단계를 포함하는, 비-일시적 컴퓨터 판독 가능 매체.
  22. 제 18 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 단계는, 얼마나 많은 추가 대역폭 할당이 실행시 문제점을 야기하는지를 결정하기 위해 상기 새 장치상에서 상기 레거시 애플리케이션을 실행하는 동안 상기 버스 성능을 조정하는 단계를 포함하는 비-일시적 컴퓨터 판독 가능 매체.
  23. 제 18 항에 있어서, 상기 새 장치는 메모리 또는 구성 가능한 하드웨어 레지스터에 저장된 순람표를 사용하여, 상이한 버스 트래픽 조건 하에서 상기 새 장치의 노드들 간에 대역폭을 할당하는 비-일시적 컴퓨터 판독 가능 매체.
  24. 제 18 항에 있어서, 상기 새 장치에 대한 버스 성능을 통제하는 단계는 대역폭 할당을 결정하기 위해 레거시 버스의 동작의 컴퓨터 모델을 사용하는 단계를 포함하는 비-일시적 컴퓨터 판독 가능 매체.
  25. 제 18 항에 있어서, 상기 새 장치는 메모리 또는 구성 가능한 하드웨어 레지스터에 저장된 하나 이상의 비율을 사용하여 상이한 버스 트래픽 조건 하에서 상기 새 장치의 노드들 간에 대역폭을 할당하는 비-일시적 컴퓨터 판독 가능 매체.
KR1020187024048A 2016-01-22 2017-01-20 하위 호환성을 위한 레거시 버스 동작 시뮬레이션 KR102160414B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662286284P 2016-01-22 2016-01-22
US62/286,284 2016-01-22
PCT/US2017/014270 WO2017127634A1 (en) 2016-01-22 2017-01-20 Simulating legacy bus behavior for backwards compatibility

Publications (2)

Publication Number Publication Date
KR20180104077A KR20180104077A (ko) 2018-09-19
KR102160414B1 true KR102160414B1 (ko) 2020-09-28

Family

ID=59360526

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187024048A KR102160414B1 (ko) 2016-01-22 2017-01-20 하위 호환성을 위한 레거시 버스 동작 시뮬레이션

Country Status (6)

Country Link
US (1) US10102094B2 (ko)
EP (2) EP3405866A4 (ko)
JP (2) JP6728370B2 (ko)
KR (1) KR102160414B1 (ko)
CN (2) CN116401184A (ko)
WO (1) WO2017127634A1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5857085A (en) 1996-11-13 1999-01-05 Cypress Semiconductor Corporation Interface device for XT/AT system devices on high speed local bus
US20140136738A1 (en) * 2012-11-15 2014-05-15 Scott E. Matlock Emulated legacy bus operation over a bit-serial bus

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US62284A (en) 1867-02-19 photo-litho
US5305452A (en) * 1987-10-23 1994-04-19 Chips And Technologies, Inc. Bus controller with different microprocessor and bus clocks and emulation of different microprocessor command sequences
US5937174A (en) * 1996-06-28 1999-08-10 Lsi Logic Corporation Scalable hierarchial memory structure for high data bandwidth raid applications
US5875309A (en) * 1997-04-18 1999-02-23 3Com Corporation Arbitration system using linked table
CN100353349C (zh) * 1999-11-05 2007-12-05 模拟装置公司 通讯处理器的总线结构和共享总线判优方法
US6639918B1 (en) * 2000-01-18 2003-10-28 Apple Computer, Inc. Method and apparatus for border node behavior on a full-duplex bus
JP2001344287A (ja) * 2000-06-02 2001-12-14 Nec Microsystems Ltd アルゴリズム記述におけるバスの性能評価方法
DE10036278A1 (de) * 2000-07-26 2002-02-07 Bosch Gmbh Robert Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik
US6912611B2 (en) * 2001-04-30 2005-06-28 Advanced Micro Devices, Inc. Split transactional unidirectional bus architecture and method of operation
WO2003032253A2 (en) 2001-10-10 2003-04-17 Sony Computer Entertainment America Inc. System and method for environment mapping
US7081893B2 (en) 2001-10-10 2006-07-25 Sony Computer Entertainment America Inc. System and method for point pushing to render polygons in environments with changing levels of detail
CA2429876A1 (en) * 2003-05-27 2004-11-27 Ibm Canada Limited - Ibm Canada Limitee Testing computer applications
US7114112B2 (en) * 2003-06-18 2006-09-26 International Business Machines Corporation Method, system, and program for simulating Input/Output (I/O) requests to test a system
US7155553B2 (en) * 2003-08-14 2006-12-26 Texas Instruments Incorporated PCI express to PCI translation bridge
WO2005036795A2 (en) * 2003-10-10 2005-04-21 Nokia Corporation Communication bus having low latency
US7558723B2 (en) * 2003-12-12 2009-07-07 Microsoft Corporation Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices
US7231475B1 (en) * 2004-01-30 2007-06-12 Cisco Technology, Inc. Advanced bandwidth allocation in PCI bus architecture
US20060168269A1 (en) * 2004-12-30 2006-07-27 Microsoft Corporation Bus abstraction
JP4397858B2 (ja) * 2005-06-27 2010-01-13 株式会社ソニー・コンピュータエンタテインメント エミュレート装置及びエミュレート方法
JP2007048019A (ja) * 2005-08-10 2007-02-22 Sony Computer Entertainment Inc エミュレーション方法、エミュレータ、コンピュータ組込型デバイスおよびエミュレータ用プログラム
US7395361B2 (en) * 2005-08-19 2008-07-01 Qualcomm Incorporated Apparatus and methods for weighted bus arbitration among a plurality of master devices based on transfer direction and/or consumed bandwidth
US7809547B2 (en) * 2005-12-29 2010-10-05 Guenthner Russell W Host computer system emulating target system legacy software and providing for incorporating more powerful application program elements into the flow of the legacy software
CN100488175C (zh) * 2006-09-12 2009-05-13 华为技术有限公司 串行级联总线上行流控方法及节点设备
US8149242B2 (en) 2006-11-10 2012-04-03 Sony Computer Entertainment Inc. Graphics processing apparatus, graphics library module and graphics processing method
US8473647B2 (en) * 2007-09-17 2013-06-25 Apple Inc. Methods and apparatus for decreasing power consumption and bus activity
US7804735B2 (en) * 2008-02-29 2010-09-28 Qualcomm Incorporated Dual channel memory architecture having a reduced interface pin requirements using a double data rate scheme for the address/control signals
CN101676890B (zh) * 2008-08-15 2012-05-16 北京北大众志微系统科技有限责任公司 一种动态调整带宽分配的总线仲裁方法及仲裁器
JP5415779B2 (ja) * 2009-02-19 2014-02-12 株式会社ソニー・コンピュータエンタテインメント 互換アダプタ装置および互換処理方法
JP2011034495A (ja) * 2009-08-05 2011-02-17 Panasonic Corp メモリアクセス装置、及び映像処理システム
CN101788947B (zh) * 2010-02-09 2012-10-17 华为技术有限公司 系统总线的监测方法、系统总线监测器及片上系统
WO2012109857A1 (zh) * 2011-07-29 2012-08-23 华为技术有限公司 带宽调整方法、总线控制器及信号转换器
SG11201404726TA (en) * 2012-02-21 2014-09-26 Applied Materials Inc Enhanced re-hosting capability for legacy hardware and software
JP2013196667A (ja) * 2012-03-23 2013-09-30 Ricoh Co Ltd 画像処理装置
CN103455458A (zh) * 2012-05-28 2013-12-18 鸿富锦精密工业(深圳)有限公司 多gpu环境下pci_e总线带宽调整方法及系统
US10102603B2 (en) 2013-06-10 2018-10-16 Sony Interactive Entertainment Inc. Scheme for compressing vertex shader output parameters
US10176621B2 (en) 2013-06-10 2019-01-08 Sony Interactive Entertainment Inc. Using compute shaders as front end for vertex shaders
US10096079B2 (en) 2013-06-10 2018-10-09 Sony Interactive Entertainment Inc. Fragment shaders perform vertex shader computations
US10134102B2 (en) 2013-06-10 2018-11-20 Sony Interactive Entertainment Inc. Graphics processing hardware for using compute shaders as front end for vertex shaders
US9836816B2 (en) 2014-04-05 2017-12-05 Sony Interactive Entertainment America Llc Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
WO2015154004A1 (en) 2014-04-05 2015-10-08 Sony Computer Entertainment America Llc Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
US9652882B2 (en) 2014-04-05 2017-05-16 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
US9760113B2 (en) 2015-02-20 2017-09-12 Sony Interactive Entertainment America Llc Backward compatibility through use of spoof clock and fine grain frequency control
US10235219B2 (en) 2015-07-27 2019-03-19 Sony Interactive Entertainment America Llc Backward compatibility by algorithm matching, disabling features, or throttling performance
US11403099B2 (en) 2015-07-27 2022-08-02 Sony Interactive Entertainment LLC Backward compatibility by restriction of hardware resources

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5857085A (en) 1996-11-13 1999-01-05 Cypress Semiconductor Corporation Interface device for XT/AT system devices on high speed local bus
US20140136738A1 (en) * 2012-11-15 2014-05-15 Scott E. Matlock Emulated legacy bus operation over a bit-serial bus

Also Published As

Publication number Publication date
KR20180104077A (ko) 2018-09-19
JP2020170541A (ja) 2020-10-15
CN116401184A (zh) 2023-07-07
US20170212820A1 (en) 2017-07-27
EP3405866A1 (en) 2018-11-28
EP4145297A1 (en) 2023-03-08
CN108885553A (zh) 2018-11-23
CN108885553B (zh) 2022-12-27
JP2019505046A (ja) 2019-02-21
US10102094B2 (en) 2018-10-16
EP3405866A4 (en) 2019-08-07
JP6987185B2 (ja) 2021-12-22
JP6728370B2 (ja) 2020-07-22
WO2017127634A1 (en) 2017-07-27

Similar Documents

Publication Publication Date Title
JP5180373B2 (ja) 仮想化環境における割り込みメッセージ終了のレイジー処理
JP5963282B2 (ja) 割り込み分配スキーム
US10275348B2 (en) Memory controller for requesting memory spaces and resources
TWI621023B (zh) 用於支持對經由nvme控制器、通過網路存取的遠端存儲設備的熱插拔的系統和方法
JP5902175B2 (ja) Gpu利用可能仮想マシンの負荷分散技法
US9110702B2 (en) Virtual machine migration techniques
JP5170782B2 (ja) ヘテロジニアス処理ユニットのための集中デバイス仮想化レイヤ
US7769918B2 (en) Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine
US7533198B2 (en) Memory controller and method for handling DMA operations during a page copy
US8285915B2 (en) Relocating page tables and data amongst memory modules in a virtualized environment
US20130346613A1 (en) Scheduling a processor to support efficient migration of a virtual machine
US8930568B1 (en) Method and apparatus for enabling access to storage
US10853259B2 (en) Exitless extended page table switching for nested hypervisors
EP3336696A1 (en) Implementing device models for virtual machines with reconfigurable hardware
Markussen et al. Smartio: Zero-overhead device sharing through pcie networking
KR102160414B1 (ko) 하위 호환성을 위한 레거시 버스 동작 시뮬레이션
JPWO2018173300A1 (ja) I/o制御方法およびi/o制御システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant