Software Básico Evolução das Máquinas Multiníveis Capítulo 1 Mitsuo Takaki http://www.cin.ufpe.br/~mt2/ [email protected] Evolução das Máquinas Multiníveis • Nos primeiros computadores, a fronteira entre hardware e software era bem definida. • À medida que as máquinas foram evoluindo, esta fronteira se tornou difícil de separar. • Software e hardware são logicamente equivalentes. Evolução das Máquinas Multiníveis • O que pode ser feito em hardware, pode ser feito em software e vice-versa. • A decisão de por certas funções em hardware e outras em software é baseada em fatores como custo, velocidade, confiabilidade e frequência de mudanças esperadas. – Mudam com o passar do tempo, com fatores econômicos e tecnológicos. A Invenção da Microprogramação • Os primeiros computadores eram compostos de dois níveis: – ISA, onde era feita a programação. – Lógico digital, executava os programas. A Invenção da Microprogramação • A criação de um novo nível foi essencial para a simplificação do hardware. – Seria necessário um conjunto menor de instruções. – Existia um interpretador embutido e imutável que executava os programas do nível ISA. – Hardware executava apenas microprogramas. A Invenção do Sistema Operacional • O SO foi criado para otimizar a utilização dos computadores. • Rodava constantemente e reduzia drasticamente o esforço necessário para rodar programas. A Invenção do Sistema Operacional • Os desenvolvimento dos SOs cresceu com o passar do tempo. – Novas instruções foram adicionadas ao nível ISA. – Estas novas instruções ficaram conhecidas como macros de SO ou chamadas do supervisor. • Hoje é conhecido como chamada do sistema. Migração de Funcionalidade para Microcódigo • Os projetistas perceberam que podiam introduzir novas instruções ampliando o microcódigo. • Desta forma poderia “ampliar” o hardware por programação. • Várias instruções desnecessárias foram criadas. – Exemplo do INC que realizava ação semelhante a ADD, apesar de ser mais rápido. Eliminação da Microprogramação • Com o aumento descontrolado dos microprogramas, os computadores foram se tornando mais lentos. • Pesquisadores perceberam que fazendo com que as instruções fossem executadas diretamente os computadores ficariam mais rápidos. – Sem o controle do caminho de dados por software. Eliminação da Microprogramação • Com isto, voltaram ao estado anterior a criação de microcódigo. • O que é hardware hoje, pode ser software amanhã. – Exemplo: Java.