IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0228929
(2002-08-27)
|
발명자
/ 주소 |
- Ahmed, Ashraf
- Filippo, Michael A.
- Pickett, James K.
|
출원인 / 주소 |
- Advanced Micro Devices, Inc.
|
대리인 / 주소 |
Meyertons, Hood, Kivlin, Kowert &
|
인용정보 |
피인용 횟수 :
76 인용 특허 :
11 |
초록
▼
A functional unit of a processor may be configured to operate on instructions as either a single, wide functional unit or as multiple, independent narrower units. For example, an execution unit may be scheduled to execute an instruction as a single double-wide execution unit or as two independently
A functional unit of a processor may be configured to operate on instructions as either a single, wide functional unit or as multiple, independent narrower units. For example, an execution unit may be scheduled to execute an instruction as a single double-wide execution unit or as two independently schedulable single-wide execution units. Functional unit portions may be independently schedulable for execution of instructions operating on a first data type (e.g. SISD instructions). For single-wide instructions, functional unit portions may be scheduled independently. An issue lock mechanism may lock functional unit portions together so that they form a single multi-wide functional unit. For certain multi-wide instructions (e.g. certain SIMD instructions), an instruction operating on a multi-wide or vector data type may be scheduled so that the full multi-wide operation is performed concurrently by functional unit portions locked together as a one wide functional unit.
대표청구항
▼
1. A processor, comprising:an instruction scheduler configured to receive instructions and schedule the instructions for issuance, wherein said instructions comprise first instructions specifying a first data type having a first bit-width and second instructions specifying a second data type having
1. A processor, comprising:an instruction scheduler configured to receive instructions and schedule the instructions for issuance, wherein said instructions comprise first instructions specifying a first data type having a first bit-width and second instructions specifying a second data type having a second bit-width; a functional unit configured to receive instructions issued from said scheduler and to perform an operation according to each issued instruction, wherein said functional unit comprises a plurality of functional unit portions, wherein each functional unit portion is configured to operate on operands of said first data type, and wherein said plurality of functional unit portions are configured to be locked together to operate on operands of said second data type; wherein said scheduler is configured to independently schedule said first instructions to separate ones of said plurality of functional unit portions, to atomically schedule a first one of said second instructions to said functional unit with the plurality of functional unit portions locked together to operate concurrently on an operand of said first one of said second instructions, and to independently schedule a second one of said second instructions to said functional unit, wherein said plurality of functional unit portions are configurable to operate non-concurrently on portions of an operand of said second one of said second instructions. 2. The processor as recited in claim 1, wherein said first instructions comprise single instruction single data (SISD) instructions, and wherein said second instructions comprise single instruction multiple data (SIMD) instructions.3. The processor as recited in claim 2, wherein said SIMD instructions specify an operand of said second data type comprising a plurality of sub-operands of said first data type.4. The processor as recited in claim 3, wherein said scheduler is configured to atomically schedule one of said SIMD instructions to said functional unit with the plurality of functional unit portions locked together when the SIMD instruction is issued so that each sub-operand of the SIMD operand is concurrently operated on by one of the plurality of functional unit portions.5. The processor as recited in claim 3, wherein said scheduler is configured to independently schedule one of said SIMD instructions to said plurality of functional unit portions so that each sub-operand of the SIMD operand is independently operated on by one of the plurality of functional unit portions.6. The processor as recited in claim 1, wherein each functional unit portion is an execution unit configured to perform one or more arithmetic operations on one or more operands of said first data type.7. The processor as recited in claim 1, wherein each functional unit portion is a load/store unit configured to perform load or store operations on one or more operands of said first data type.8. The processor as recited in claim 1, further comprising:an instruction queue/decode unit configure to determine which instructions are ones of said second instructions to be atomically scheduled, wherein said instruction queue/decode unit is configured to activate an issue lock mechanism for ones of said second instructions to be atomically scheduled; wherein said scheduler is configured to issue said second instructions for which said issue lock is activated to each of said plurality of functional unit portions in the same clock cycle. 9. A method for scheduling instructions in a processor, comprising:fetching instructions comprising first instructions specifying a first data type having a first bit-width and second instructions specifying a second data type having a second bit-width; scheduling the instructions for issuance to a functional unit comprising a plurality of functional unit portions, wherein said scheduling comprises independently scheduling said first instructions to separate ones of the plurality of functional unit portions, atomically scheduling a first one of said second instructions to the functional unit with the plurality of functional unit portions locked together, and independently scheduling a second one of said second instructions to said functional unit; and performing an operation according to each instruction issued to the functional unit; wherein, for said first instructions, said performing comprises each functional unit portion independently operating on operands of said first instructions; wherein, for said first one of said second instructions, said performing comprises locking the plurality of functional unit portions together to operate concurrently on an operand of said first one of said second instructions; and wherein, for said second one of said second instructions, said performing comprises said plurality of functional unit portions operating non-concurrently on portions of an operand of said second one of said second instructions. 10. The method as recited in claim 9, wherein said first instructions comprise single instruction single data (SISD) instructions, and wherein said second instructions comprise single instruction multiple data (SIMD) instructions.11. The method as recited in claim 10, wherein said SIMD instructions specify an operand of said second data type comprising a plurality of sub-operands of said first data type.12. The method as recited in claim 11, wherein said scheduling comprises atomically scheduling one of said SIMD instructions to said functional unit with the plurality of functional unit portions locked together when the SIMD instruction is issued so that each sub-operand of the SIMD operand is concurrently operated on by one of the plurality of functional unit portions.13. The method as recited in claim 11, wherein said scheduling comprises independently scheduling one of said SIMD instructions to said plurality of functional unit portions so that each sub-operand of the SIMD operand is independently operated on by one of the plurality of functional unit portions.14. The method as recited in claim 9, wherein said performing comprises performing one or more arithmetic operations on one or more operands of said first data type in an execution unit.15. The method as recited in claim 9, wherein said performing comprises performing load or store operations on one or more operands of said first data type in a load/store unit.16. The method as recited in claim 9, further comprising:determining which instructions are ones of said second instructions to be atomically scheduled; activating an issue lock mechanism for ones of said second instructions to be atomically scheduled; and issuing said second instructions for which said issue lock is activated to each of said plurality of functional unit portions in the same clock cycle. 17. A computer system, comprising:a system memory configured to store program instructions; a processor coupled to said system memory, comprising: an instruction scheduler configured to receive instructions derived from the program instructions and schedule the instructions for issuance, wherein said instructions comprise first instructions specifying a first data type having a first bit-width and second instructions specifying a second data type having a second bit-width; a functional unit configured to receive instructions issued from said scheduler and to perform an operation according to each issued instruction, wherein said functional unit comprises a plurality of functional unit portions, wherein each functional unit portion is configured to operate on operands of said first data type, and wherein said plurality of functional unit portions are configured to be locked together to operate on operands of said second data type; wherein said scheduler is configured to independently schedule said first instructions to separate ones of said plurality of functional unit portions, to atomically schedule a first one of said second instructions to said functional unit with the plurality of functional unit portions locked together to operate concurrently on an operand of said first one of said second instructions, and to independently schedule a second one of said second instructions to said functional unit, wherein said plurality of functional unit portions are configurable to operate non-concurrently on portions of an operand of said second one of said second instructions. 18. The computer system as recited in claim 17, wherein said first instructions comprise single instruction single data (SISD) instructions, and wherein said second instructions comprise single instruction multiple data (SIMD) instructions.19. The computer system as recited in claim 18, wherein said SIMD instructions specify an operand of said second data type comprising a plurality of sub-operands of said first data type.20. The computer system as recited in claim 19, wherein said scheduler is configured to atomically schedule one of said SIMD instructions to said functional unit with the plurality of functional unit portions locked together when the SIMD instruction is issued so that each sub-operand of the SIMD operand is concurrently operated on by one of the plurality of functional unit portions.21. The computer system as recited in claim 19, wherein said scheduler is configured to independently schedule one of said SIMD instructions to said plurality of functional unit portions so that each sub-operand of the SIMD operand is independently operated on by one of the plurality of functional unit portions.22. The computer system as recited in claim 17, wherein each functional unit portion is an execution unit configured to perform one or more arithmetic operations on one or more operands of said first data type.23. The computer system as recited in claim 17, wherein each functional unit portion is a load/store unit configured to perform load or store operations on one or more operands of said first data type.24. The computer system as recited in claim 17, further comprising:an instruction queue/decode unit configure to determine which instructions are ones of said second instructions to be atomically scheduled, wherein said instruction queue/decode unit is configured to activate an issue lock mechanism for ones of said second instructions to be atomically scheduled; wherein said scheduler is configured to issue said second instructions for which said issue lock is activated to each of said plurality of functional unit portions in the same clock cycle.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.