Conjunto de instruções

Conjunto de instruções (tradução de instruction set) são as operações que um processador, microprocessador, microcontrolador, CPU ou outros periféricos programáveis suporta, fornece ou disponibiliza para o programador, ou seja, é a representação em mnemônicos do código de máquina, com a finalidade de facilitar o acesso ao componente.

Componentes

Cada componente possui o seu próprio conjunto de instruções, que é fornecido pelo fabricante, que também costuma fornecer ou disponibilizar um montador assembly, que transforma o conjunto de instruções em código de máquina para ser utilizado pelo componente.

No caso dos processadores, quando o conjunto de instruções for reduzido leva-o a ter o nome de RISC; e se forem complexas, o nome de CISC.[1]

● “Fronteira” entre o projectista e o programador de uma máquina:

– Projectista: fornece os requisitos funcionais de uma CPU

● quantos e quais registadores? quais operações na ULA? qual organização da Unidade de Controle?

– Programador: fornece o modo mais básico de interagir com o hardware do computador

● Nesse nível de programação, é necessário conhecer alguns detalhes internos da máquina: conjunto de registadores, estrutura da memória, tipos de dados disponíveis directam

Projeto do conjunto de instruções:

O projeto de um conjunto de instruções é muito complexo, uma vez que ele afeta muitos aspectos do sistema computacional

Os elementos mais usados no projeto de instruções são :

·        Repertório de operações

·        Tipos de dados

·        Formato das instruções

·        Registradores

·        Modos de endereçamento

Repertório de operações - quantas e quais as operações que são necessárias e quão complexas elas podem ser

Tipos de dados – quais os tipos de dados sobre os quais as operações são efetuadas

Formato das instruções - comprimento das instruções em bits, número de endereços, tamanho dos vários campos

Registradores - nº e tamanho dos registradores da CPU que podem ser usados e o propósito de cada um

Modos de endereçamento – de que modo o endereço de um operando pode ser especificado

Sobre

Arquitetura do conjunto de instruções (instruction set architecture - ISA) se distingue da microarquitetura, que é o conjunto de técnicas de design de processadores usado ​​para implementar o conjunto de instruções. Computadores com diferentes microarquiteturas podem compartilhar um conjunto de instruções comum. Por exemplo, o Intel Pentium e o AMD Athlon implementam versões quase idênticas do conjunto de instruções x86, mas com diferentes projetos internos.

O conceito de uma arquitetura distinta do projeto de uma máquina específica, foi desenvolvido por Fred Brooks na IBM durante a fase de projeto do System/360.[2]

Classificação dos conjuntos de instruções

Um conjunto de instruções complexo (Complex Instruction Set Computer - CISC) tem muitas instruções especializadas, algumas das quais raramente serão usadas ​em programas práticos. Um conjunto reduzido de instruções (Reduced Instruction Set Computer - RISC) simplifica o processador implementando somente as instruções que são frequentemente utilizadas; operações não usuais são implementadas como sub-rotinas, onde o tempo de execução extra é compensado pela sua utilização rara. Teoricamente tipos importantes são o Minimal Instruction Set Computer e o One Instruction Set Computer, mas estes não são implementados em processadores comerciais. Outra variação é o Very Long Instruction Word (VLIW) onde o processador recebe muitas instruções codificadas em uma única palavra de instrução.

Linguagem de Máquina

A linguagem de máquina é feita a partir de declarações ou instruções simples, é uma representação para instruções em um nível mais baixo. Todo programa é traduzido por uma linguagem de nível mais alto (como Java e C++) para a linguagem de máquina.

Na arquitetura de processamento, uma determinada instrução pode especificar:

  • Registradores especiais para aritmética, endereçamento, ou funções de controle;
  • Posições de memória específicas ou deslocamentos;
  • Modos de endereçamento específico utilizado para interpretar os operandos;

Operações mais complexas são construídas combinando estas instruções simples, que são executadas sequencialmente, ou de outra forma, dirigidas por instruções de controle de fluxo.

Exemplos de operações primitivas

  • Transferência de uma palavra de dados de uma célula para outra;
  • Soma de dois operandos, guardando o resultado em um deles ou em um terceiro operando;
  • Desvio para outro endereço fora da sequência;
  • Teste de condição. Se o teste resultar em true(verdadeiro), desvia para outro endereço;
  • Realizar operação lógica “AND” entre dois valores;
  • Parar a execução de um programa;
  • Transferência de byte da porta de E/S para a MP e vice-versa;
  • Substituição do operando por seu valor absoluto.[3]

Partes de uma instrução

Em arquiteturas tradicionais, uma instrução inclui um código de operação que especifica a operação a ser executada, como adicionar conteúdo da memória para um registrador, tendo zero ou mais operandos especificados, que podem referenciar registradores, posições de memória ou dados literais. Os operandos especificados podem ter modos de endereçamento que determinam o seu significado. Existem arquiteturas com palavra de instrução muito longa(VLIW), que incluem muitos microcódigos, onde múltiplos opcodes e operandos são especificados em uma única instrução.

Alguns conjuntos de instruções não tem um campo de opcode (como Transport Triggered Architectures (TTA) ou a Forth virtual machine), só operando(s). Alguns conjuntos de instruções não têm nenhum campo de operando especificado, como algumas máquinas de pilha.[4]

Operation Code: indica ao processador o que fazer e como fazer(qual é a operação a ser executada), é o nome da instrução propriamente dito. Ele indica ao processador quais dados e onde a operação se realizará. Suas especificações e formatos são definidos no conjunto de instruções da arquitetura do processador em questão (que pode ser um processador geral ou uma unidade de tratamento mais especializado).[5]

O tamanho ou comprimento de uma instrução varia muito, de menos de quatro bits em alguns micro controladores a muitas centenas de bits em alguns sistemas VLIW. Processadores usados ​​em computadores pessoais, mainframes e supercomputadores têm tamanhos de instrução entre 8 e 64 bits. A mais longa instrução disponível no x86 é de 15 bytes (120 bits).[6]

Instruções RISC normalmente tem uma largura de instrução fixa (geralmente 4 bytes = 32 bits), enquanto que um conjunto típico de instruções CISC pode ter instruções de comprimento muito variável (1-15 bytes para x86). Instruções de largura fixa são menos complicadas de lidar do que instruções de largura variável, por várias razões (não precisa verificar se uma instrução atravessa uma linha de cache ou o limite virtual da página deb memória, por exemplo), e são, portanto, um pouco mais fácil de otimizar a velocidade.[7]

As instruções que constituem um programa raramente são especificados usando a sua forma numérica (código de máquina), podem ser especificados por programadores que utilizam uma linguagem de montagem, ou, mais comumente, podem ser gerados por compiladores a partir de linguagens de programação.

Projeto

O projeto de conjuntos de instruções é uma questão complexa. Houve duas fases da história para o microprocessador. O primeiro foi o CISC (Complex Instruction Set Computer), que teve muitas instruções diferentes. Na década de 1970, no entanto, a IBM fez uma pesquisa e descobriu que muitas instruções poderiam ser eliminadas. O resultado foi o RISC (Reduced Instruction Set Computer), uma arquitetura que utiliza um conjunto menor de instruções. Um conjunto de instruções mais simples pode oferecer o potencial para velocidades mais elevadas, redução do tamanho do processador, e reduzido consumo de energia. No entanto, um conjunto mais complexo pode otimizar as operações comuns, melhorar a eficiência da memória/cache e simplificar a programação.[8]

Operando

É o dado que se deseja manipular.

Adicionalmente, em código de máquina, um operando é um valor (um argumento) no qual a instrução, nomeada por um mnemônico, opera. O operando pode ser um registrador, um endereço de memória, uma constante literal, ou um rótulo. Um exemplo simples é:

  • MOV   DS, AX;

Onde o valor no operando registrador AX deve ser movido para o registrador DS.

Dependendo da instrução, pode haver zero, um, dois ou mais operandos.

Instruções com quatro operandos

OPCODE Operando1 Operando2 Operando3 Endereço da próxima instrução.

Exemplo:

  • ADD A, B, C, P

C=A+B, onde soma-se A com B e o resultado é guardado em C, e P guarda o endereço da próxima instrução. Uma vantagem é que a instrução é complexa e tem a desvantagem de ocupar muito espaço na MP.

Instruções com três operandos

OPCODE Operando1 Operando2 Operando3.

Exemplo:

  • ADD A, B, C

C = A + B, onde soma-se A com B e o resultado é guardado em C.

Em CISC torna-se uma única instrução: ADD A, B, C.

Em RISC as instruções aritméticas usam apenas registradores, são necessários 2 operandos explícitos e instruções de load/store.

C = A + B tem quatro instruções.

Ao contrário de 2-operandos ou 1-operando, ele deixa todos os três valores (A, B e C) nos registradores para posterior reutilização.[9]

Instruções com dois operandos

OPCODE Operando1 Operando2.

Exemplo:

  • ADD A, B

A = A + B, onde soma-se A com B e o resultado é guardado em A.

Muitas máquinas CISC e RISC se enquadram nesta categoria.

CISC - Muitas vezes as máquinas estão limitadas a um operando de memória por instrução, isto requer load/store para qualquer movimento de memória, independentemente se o resultado é armazenado em um local diferente (C = A + B) ou a mesma localização de memória (A = A + B).

C = A + B tem três instruções.

RISC - Exige cargas de memória de forma explícita, as instruções seriam:

  1. LOAD A, Reg1
  2. LOAD B, Reg2
  3. ADD Reg1, Reg2
  4. STORE Reg2, C

C = A + B tem quatro instruções.

Instruções com 1 operando

OPCODE Op1

Chamadas de máquinas de acumulador, pertence aos primeiros computadores e muitos microcontroladores. Um registrador específico é utilizado para essa instrução: ACC, ele é um operando implícito.

Exemplo:

  • ADD Op → ACC = ACC + Op.

C = A + B tem três instruções:

  1. LOAD A
  2. ADD B
  3. STORE C
Instruções com zero operando

Não possui operandos, utiliza PILHA.

Todas as operações aritméticas ocorrer usando o topo ou duas posições na pilha (topo e segunda posição).

Exemplo:

  • C = A + B

Tem quatro instruções:

  1. PUSH A
  2. PUSH B
  3. ADD
  4. POP C

Modo de Endereçamento

Os vários modos de endereçamento que são definidos em um conjunto de instruções definem como a linguagem de máquina identifica o operando (ou operandos) de cada instrução. Um modo de endereçamento especifica a forma de calcular o endereço de memória de um operando.

Arquiteturas de computadores diferentes variam muito quanto ao número de modos de endereçamento. Existem alguns benefícios ao se utilizar modos de endereçamentos mais simples, um deles é a maior facilidade de implementar pipelines.[10][11][12]

Alguns exemplos de modos de endereçamento:

Modo Imediato

Método simples e rápido, o valor do campo operando é o próprio dado.

Intel Pentium e AMD Athlon usam algumas instruções de modo imediato: desvio, movimentação, operações aritméticas com constantes, etc.

Exemplo:

  • MOV AX, 14H

Copiar o valor hexadecimal 14 para o registrador AX.

Modo Direto

O valor do campo operando indica o endereço do dado. Requer apenas uma referência à memória principal para busca-lo.

Exemplo:

  • MOV  AY,[8077h]

É movido o valor do campo de endereço [8077h] para AY, apenas o valor da memória pode ser alterado mas não o endereço.

Endereçamento por Registrador

O operando aponta para um registrador, o qual contém o dado ou pode apontar para um registrador no qual contém um endereço de memória (ponteiro) onde está o dado.

Exemplo:

  • MOV  AL,BX

É movido o registrador BX para o registrador AL.

Endereçamento por Registrador Indireto

Permite acessar a memória indiretamente através de um registrador.

Exemplo:

  • MOV  AX,[BP]

É movido o endereço da memória [BP] para o registrador AX.

Modo Indexado

Os deslocamentos gerados por este modos de endereçamento é a soma da constante e do registrador especificado.

Exemplo:

  • MOV  AL,[BX+015]

É movido a soma do registrador com a constante [BX+015] para o registrador AL.[13]

Referências

  1. The evolution of RISC technology at IBM by John Cocke – IBM Journal of R&D, Volume 44, Numbers 1/2, p.48 (2000)
  2. Pugh, Emerson W.; Johnson, Lyle R.; Palmer, John H. (1991). IBM's 360 and Early 370 Systems. MIT Press. ISBN 0-262-16123-0.
  3. «Título ainda não informado (favor adicionar)». elemarjr.net 
  4. Forth Resources: NOSC Mail List Archive. strangegizmo.com. Retirado 2014-07-25.
  5. «Título ainda não informado (favor adicionar)» (PDF). www.fas.harvard.edu 
  6. Intel® 64 and IA-32 Architectures Software Developer’s Manual". Intel Corporation. Retrieved 12 July 2012.
  7. The evolution of RISC technology at IBM by John Cocke – IBM Journal of R&D, Volume 44, Números 1/2, p.48 (2000)
  8. Ganssle, Jack. "Proactive Debugging". Publicado em 26/02/2001.
  9. The evolution of RISC technology at IBM by John Cocke – IBM Journal of R&D, Volume 44, Numbers 1/2, p.48 (2000)
  10. «Título ainda não informado (favor adicionar)». www.csee.umbc.edu 
  11. «Título ainda não informado (favor adicionar)». hpc.serc.iisc.ernet.in. Consultado em 3 de novembro de 2014. Arquivado do original em 27 de dezembro de 2013 
  12. John Paul Shen, Mikko H. Lipasti (2004). Modern Processor Design. McGraw-Hill Professional.
  13. «Título ainda não informado (favor adicionar)». sca.unioeste-foz.br. Consultado em 3 de novembro de 2014. Arquivado do original em 1 de agosto de 2008 

Ver também

Read other articles:

Artikel ini tidak sama dengan TeleSUR Canal SurJenisTelevisi terestrial berjaringanNegaraKetersediaanAndalusiaJuga menerima: Spanyol: Ceuta, Melilla, Badajoz, Ciudad Real, Albacete, Murcia Portugal: Algarve GibraltarTanggal peluncuran28 Februari 1989Situs webwww.canalsur.es Canal Sur adalah stasiun televisi autonoma Andalusia, Spanyol. Kantor pusat stasiun ini berada di Sevilla, Spanyol. Galeri logo logo lama Canal Sur logo terbaru canal sur Lihat pula Canal Sur 2 Canal Sur Radio Pranala luar...

 

  لمعانٍ أخرى، طالع فيرفاكس (توضيح). فيرفاكس     الإحداثيات 37°59′14″N 122°35′20″W / 37.987222222222°N 122.58888888889°W / 37.987222222222; -122.58888888889  [1] تقسيم إداري  البلد الولايات المتحدة[2][3]  التقسيم الأعلى مقاطعة مارين  خصائص جغرافية  المساحة 5.707074 كيلو�...

 

العلاقات المارشالية الكورية الشمالية جزر مارشال كوريا الشمالية   جزر مارشال   كوريا الشمالية تعديل مصدري - تعديل   العلاقات المارشالية الكورية الشمالية هي العلاقات الثنائية التي تجمع بين جزر مارشال وكوريا الشمالية.[1][2][3][4][5] مقارنة بين ال...

This article is about the caucus for Hispanic Republican members of Congress. For its Democratic counterpart, see Congressional Hispanic Caucus. Congressional Hispanic Conference Co-ChairsMario Díaz-BalartTony GonzalesFounded2003; 21 years ago (2003)HeadquartersWashington, D.C.National affiliationRepublican PartySeats in the House15 / 435 (plus 3 non-voting) Seats in the House Republican Conference15 / 218 (plus 3 non-voting) Seats in the Senate2 / 100 Caucus in the U.S. Co...

 

Военный оркестр в Чехии Музыкальная культура чешского народа черпает свои истоки в глубокой древности, о чём свидетельствуют археологические находки на чешских землях, среди которых найдены предметы, служившие первобытному человеку в качестве элементарных музыкальны...

 

Disambiguazione – Se stai cercando altri significati, vedi Garonna (disambigua). Questa voce o sezione sull'argomento fiumi della Francia non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. GaronnaLa Garonna a TolosaStati Spagna Francia Suddivisioni Catalogna Nuova Aquitania Occitania Suddivisioni (2) Provincia di Lleida Alta Garonna Ta...

La première proposition de l'enregistrement du chant grégorien remonte en 1891. Il s'agissait d'un article dans la Musica sacra, revue du chant liturgique et de la musique religieuse, publiée à Toulouse. Selon l'auteur, il valait mieux que les moines de l'abbaye Saint-Pierre de Solesmes enregistrent leur interprétation du chant restauré[mb 1]. En 1904 à Rome, la Société Gramophone de Londres effectua une série d'enregistrements de ce chant, pour un certain nombre de disques (78 tour...

 

AwardOrder of the Cloud and BannerAwarded forContributions to national security or quelling internal unrestCountry Republic of ChinaPresented by President of the Republic of China (Taiwan)StatusCurrently awardedEstablished15 June 1935PrecedenceNext (higher)Order of the Sacred TripodNext (lower)Order of Loyalty and Valour The Order of the Cloud and Banner (Chinese: 雲麾勳章/雲麾勛章) also known as the Order of the Resplendent Banner is a military award of the Republ...

 

Questa voce o sezione sull'argomento geografia ha un'ottica geograficamente limitata. Motivo: Quasi l'intera voce è scritta con un punto di vista decisamente limitato, concentrandosi in gran parte, senza giustificazione alcuna, sul territorio catanese. Come se la risorgiva non fosse un fenomeno naturale diffuso in tutto il mondo ma si palesasse solamente in Italia o in Sicilia, e più specificatamente a Catania. Voce da rivedere e da riscrivere da un punto di vista molto meno localisti...

此條目可能包含不适用或被曲解的引用资料,部分内容的准确性无法被证實。 (2023年1月5日)请协助校核其中的错误以改善这篇条目。详情请参见条目的讨论页。 各国相关 主題列表 索引 国内生产总值 石油储量 国防预算 武装部队(军事) 官方语言 人口統計 人口密度 生育率 出生率 死亡率 自杀率 谋杀率 失业率 储蓄率 识字率 出口额 进口额 煤产量 发电量 监禁率 死刑 国债 ...

 

2015 Pokémon film directed by Kunihiko Yuyama This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Pokémon the Movie: Hoopa and the Clash of Ages – news · newspapers · books · scholar · JSTOR (January 2019) (Learn how and when to remove this message) Pokémon the Movie:Hoopa and the Clash of AgesJapanese theatr...

 

Football tournament 2004 Copa AméricaTournament detailsHost countryPeruDates6–25 JulyTeams12 (from 2 confederations)Venue(s)7 (in 7 host cities)Final positionsChampions Brazil (7th title)Runners-up ArgentinaThird place UruguayFourth place ColombiaTournament statisticsMatches played26Goals scored78 (3 per match)Top scorer(s) Adriano (7 goals)Best player(s) Adriano[1]← 2001 2007 → International football competition The 2004 Copa Am�...

Text with all capital letters For the songs, see All Caps (Madvillain song) and All Caps (Weathers song). The name of the railway engine Mallard, set in all capital letters In typography, text or font in all caps (short for all capitals) contains capital letters without any lowercase letters. For example: THIS TEXT IS IN ALL CAPS. All-caps text can be seen in legal documents, advertisements, newspaper headlines, and the titles on book covers. Short strings of words in capital letters appear b...

 

هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسين هذه المقالة بإضافة وصلات إلى المقالات المتعلقة بها الموجودة في النص الحالي. (يناير 2018) الدوري البحريني الممتاز 1987–88معلومات عامةالرياضة كرة القدم البطولة الدوري الب...

 

Piano bar and gay bar in New York City, US Marie's CrisisMarie's Crisis venue in 2023.Address59 Grove StreetLocationWest Village, New York, United StatesCoordinates40°44′00″N 74°00′13″W / 40.7332°N 74.0036°W / 40.7332; -74.0036Public transit Christopher Street station (PATH) West Fourth Street–Washington Square station OwnerThe Grant FamilyType Gay bar Piano bar Dive bar ConstructionBuilt1839 (1839)Opened1929 (1929)Websitewww.mariescrisiscafe.co...

Japanese train type For the diesel multiple unit operated by JR Hokkaido, see KiHa 281 series. 281 seriesA 281 series trainManufacturerKawasaki Heavy Industries, Kinki SharyoFamily nameHarukaConstructed1994–1995Entered service4 September 1994Number built63 vehiclesNumber in service63 vehiclesFormation6/3 cars per trainsetFleet numbersHA601 – HA609, HA631 – HA633Capacity258OperatorsJR-WestDepotsHinenoLines servedTokaido Main Line, Osaka Loop Line, Hanwa Line, Kansai Airport LineSpecifica...

 

This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (July 2019) (Learn how and when to remove this message) Reciprocating internal combustion engine SOHC V6Chrysler 3.5 L SOHCOverviewManufacturerChrysler Corporation (1993–1998)DaimlerChrysler AG (1998–2007)Chrysler LLC (2007–2009)Chrysler Group LLC (2009–2010)Production1993–2010LayoutConfigurationNatural...

 

Cultures de Seima-Turbino Pointes de lance de Turbino Définition Lieu éponyme Sejma et Turbino, en Russie Caractéristiques Répartition géographique Russie d'Europe, Sibérie, Altaï Période Âge du bronze Chronologie vers 2300 à 1700 av. J.-C. Type humain associé Finno-Ougriens Objets typiques Pointes de lance en bronze modifier Les cultures de Seima-Turbino correspondent à un ensemble de sites funéraires comportant des objets en bronze similaires, datés d'environ 2300 à 1700 av....

British police procedural TV series (1955–1976) Dixon of Dock GreenJack Warner as Constable George DixonCreated byTed WillisStarringJack WarnerCountry of originUnited KingdomNo. of series22No. of episodes432 (399 missing) (list of episodes)ProductionRunning time30 minutes & 50 minutesOriginal releaseNetworkBBC Television Service/BBC1Release9 July 1955 (1955-07-09) –1 May 1976 (1976-05-01) Dixon of Dock Green is a BBC police procedural television series about daily life ...

 

This article is about the city of Joshua Tree. For the US National Park, see Joshua Tree National Park. Census-designated place in California, United StatesJoshua Tree, CaliforniaCensus-designated placeJoshua TreeCentral Joshua Tree in 2013Location in San Bernardino County and the state of CaliforniaJoshua Tree, CaliforniaLocation in the United StatesCoordinates: 34°08′05″N 116°18′42″W / 34.13472°N 116.31167°W / 34.13472; -116.31167Country United State...