Sumário: Programação da interface SCSI. Dispositivos de armazenamento ópticos. Aula Teórica 15 Leitura Recomendada: Capítulos 30 e 31 - Hans-Peter Messmer, The Indispensable PC Hardware Book, Addison-Wesley. Programação da interface SCSI Ao contrário das outras interfaces para discos rígidos, a SCSI não trabalha com pistas e sectores, mas vê a totalidade da capacidade de armazenamento de um disco como uma lista contínua de blocos de dados com um tamanho fixo. Em termos de estrutura lógica, estes blocos de dados são similares aos sectores lógicos do DOS. O número do bloco lógico é depois convertido em pistas e sectores (endereço físico). Todos os adaptadores host SCSI têm extensões BIOS próprias para estabelecer a ligação entre o sistema e o bus SCSI e para tratar da conversão dos sectores físicos em blocos lógicos. Os comandos SCSI têm 6, 10 ou 12 bytes, e têm uma estrutura bem definida. Os comandos de 10 e 12 bytes são chamados comandos estendidos. Figura nº 1 - Estrutura dos comandos de 6, 10 e 12 bytes. O primeiro byte representa o código do comando, e é dividido num código do grupo, de 3 bits, e num código do comando dentro desse grupo, de 5 bits. A estrutura do byte de comandos permite ter oito grupos diferentes (actualmente só se utilizam quatro (0, 1, 2 e 5). Os 5 bits do código do comando permite 32 comandos por grupo. Assim, é possível ter um máximo de 256 comandos diferentes. 1
Figura nº 2 - O byte de comandos. LUN (Logical Unit Number) especifica o endereço da unidade alvo. LBA (Logical Block Address), tem 21 bits para o comando de 6 bytes e 32 bits para os comandos de 10 e 12 bytes, e indica o número do bloco de dados requerido. Transfer length indica a quantidade de dados a ser transferida (normalmente é igual ao número de blocos). A estrutura termina com o byte de controlo, que basicamente controla a ligação de vários comandos. Figura nº 3 - O byte de controlo. Se o bit L estiver a 1, a ligação não é interrompida e restabelecida mais tarde (como acontece com os comandos individuais), em vez disso, a ligação continua activa para que o iniciador passe o próximo bloco de comando. Se L=0, o bit F também deve ser 0. Para iniciar a execução de um comando começa-se por transferir o bloco do comando (6, 10 ou 12 bytes) para a unidade alvo. alguns comandos requerem também uma lista de parâmetros que é transferida durante uma fase data-out. A troca de dados através do adaptador host e do bus SCSI pode ser uma operação complicada, mas que tem a vantagem de ser uma interface standard genérica que proporciona uma grande flexibilidade (podem-se acrescentar novos dispositivos SCSI sem necessidade de um adaptador de hardware ou um driver para cada dispositivo). Existem dois standards para a programação da interface: CAM (Common Access Method) e ASPI (Advanced SCSI Programming Interface). ASPI Normalmente, ASPI é um driver que é colocado em memória quando o PC arranca. Pode-se usar as funções ASPI, enviando a localização em memória de uma estrutura SRB (SCSI Request Block). 2
Figura nº 4 - Comandos ASPI. Figura nº 5 - Exemplo de uma estrutura SRB. A estrutura dos primeiros oito bytes do bloco SRB é igual para todas as funções ASPI. Depois é preciso fazer uma chamada far para a entrada correspondente no driver ASPI. Em DOS podemos definir essa entrada usando a interrupção 21H, função 44H (comunicação com device drivers), subfunção 02H (ler código de controlo). CAM Tal como o ASPI, o CAM opera com a ajuda de uma estrutura de dados em memória, a CCB (CAM Control Block) que corresponde à SRB do ASPI. A função CAM não é activada com uma chamada ao driver, mas sim utilizando a interrupção 4FH, função 8100H: Entrada ax = 8100 bx = offset ccb es = segmento ccb Saída ah = código erro se 0 - ok se 1 - endereço ccb inválido 3
Figura nº 6 - Comandos CAM. Dispositivos de armazenamento ópticos Nos nossos dias, as drives de discos ópticos utilizam interfaces IDE ou SCSI. Pode-se aceder aos dados do disco óptico de três formas possíveis: 1. Utilizando as funções para ficheiros e directorias da interrupção 21H e o driver do dispositivo. Se se utilizar a interrupção 21H, as diferenças entre CD_ROM's, discos rígidos ou qualquer outra drive desaparecem completamente. 2. Acedendo ao dispositivo através da interface. No caso da interface SCSI pode-se utilizar as funções ASPI para accionar comandos que permitem aceder à informação no disco. É o método mais aconselhado porque hoje em dia todos os sistemas operativos trazem uma plataforma ASPI na qual podemos basear os nossos programas. 3. Programando o adaptador host directamente. Só é possível se se conhecer muito bem o adaptador. É o método menos recomendado porque depende do adaptador host usado. Vamos ver a estrutura e função dos dispositivos de armazenamento mais utilizados. CD-ROM As diferenças técnicas entre um leitor de CD's e uma drive de CD-ROM não são muitas. Ao CD-ROM apenas foram adicionadas uma interface para transferir dados para o bus do PC e uma interface de controlo muito simples. A velocidade a que a drive de CD-ROM gira não é constante, ao contrário do leitor de CD's áudio. Em vez disso, a velocidade varia de acordo com a localização do equipamento de leitura sobre o CD (se na periferia ou no centro). Uma drive CD-ROM a 50x transfere dados 50 vezes mais rápido do que uma drive da primeira geração. Não significa que a drive CD-ROM de 50x gire 50x mais rápido. O processo de leitura com uma taxa de transferência constante é conhecida como velocidade linear constante (CLV). Uma vez que os dados num CD são colocados num espiral de densidade invariável, o CD gira mais rápido quando se estão a ler os dados do centro do CD. 4
Um outro procedimento é chamado velocidade angular constante (CAV). Aqui o CD gira a uma velocidade constante e a taxa de transferência varia, como acontece nos discos e disquetes. Algumas drives de CD-ROM utilizam um dos dois métodos de leitura, outras drives utilizam ambos os métodos. Na prática, em termos de desempenho, não faz grande diferença qual dos três métodos se utiliza. A forma de funcionamento do CD-ROM é simples: Dentro da drive existe um pequeno laser que emite um feixe muito fininho. O feixe não é visível porque se encontra dentro da gama dos infra-vermelhos. Através de um espelho óptico móvel, o feixe laser incide na superfície do CD-ROM. No CD, a informação é guardada na forma de pequenos "altos" e "baixos". Cada transição de um "alto" para um "baixo", ou vice-versa, é interpretado como o valor 1. Se não houver transição, temos o valor 0. Quando o laser atravessa a superfície do CD, o feixe é reflectido de forma diferente caso se trate de um "alto" ou de um "baixo" (no "baixo" a intensidade é menor). A intensidade do reflexo é recebido por um sensor que vai converter essa informação num padrão de bits. Figura nº 7 - Funcionamento do CD-ROM. Ao contrário dos discos e disquetes, o CD-ROM não é estruturado em círculos concêntricos (pistas), mas é visto como um espiral único do início ao fim do CD. Este espiral é depois subdividido em porções de dados. CD-R e CD-R/W A estrutura de um CD-R (Compact Disk Recordable) é similar à de um CD-ROM. Contudo, o CD-R não tem originalmente altos e baixos porque se vai escrever informação no CD. Para fazer isso é necessário ter-se um laser de escrita que opera e níveis energéticos muito mais elevados do que o laser para ler o CD. O CD-R vem com uma pista que é usada para guiar o feixe do laser de escrita e contém informações para que a electrónica consiga determinar a posição actual do laser sobre o CD-R e se possa definir a velocidade de rotação. O CD-R/W (Read and Writable ou ReWriteable) pode ser reescrito até 100 000 vezes, segundo os fabricantes. O CD-R/W funciona com a tecnologia phase change. A estrutura da camada de gravação altera-se quando é escrita pelo laser, que tem dois níveis de intensidade. Dependendo do aquecimento provocado pela intensidade do laser de escrita, no processo de arrefecimento criam-se zonas mais cristalinas e outras mais amorfas (mais irregulares), dependendo da temperatura que foi usada (mais quente, cria zonas amorfas). As zonas cristalinas reflectem mais. Durante o processo de leitura, é feito o scanning com um laser de leitura, da mesma forma que acontece no CD-ROM ou CD-R. O Cd-R/W pode ser reescrito pelo simples facto que a alteração do estado de cristalino para amorfo é reversível. Isto 5
acontece quando as áreas amorfas são aquecidas a uma temperatura mais baixa. Como resultado, voltam a ter uma estrutura cristalina. DVD Digital Versatile Disk A tecnologia do DVD não é muito clara, especialmente porque os fabricantes ainda não chegaram a um acordo sobre um standard. Os fabricantes adoptam abordagens diferentes e não é muito óbvia a forma como lidam com a questão da compatibilidade entre os vários DVD s e entre o DVD s e os outros meios (CD-ROM, CD-R, CD-R/W). Um DVD tem as mesmas dimensões de um CD-ROM, mas consegue conter um mínimo de sete vezes mais informação (pelo menos 4.7 Gb). Para conseguir isso: 1. Os altos e baixos, e os intervalos entre eles, são muito mais pequenos. 2. Houve alteração nos mecanismos de endereçamento e correcção de erros. 3. laser trabalha abaixo da gama dos infra-vermelhos. 4. Utilização de um máximo de duas camadas de informação em cada lado, em DVD s com os dois lados graváveis. Devido a estas alterações, os DVD s não são compatíveis com os CD-ROM s, ou seja, uma drive CD- ROM não consegue aceder a um DVD, mas uma drive DVD poderá ler CD s. Existem quatro tipos diferentes de DVD s: DVD-5: single-sided e single-layer com uma capacidade máxima de 4.7 Gb. DVD-9: single-sided e dual-layer com uma capacidade máxima de 9.4 Gb. DVD-10: double-sided e single-layer com uma capacidade máxima de 8.5 Gb. DVD-18: double-sided e double-layer com uma capacidade máxima de 17 Gb. Uma camada dupla não significa que se tenha o dobro da capacidade porque os altos e baixos são ligeiramente maiores na segunda camada de informação, para tornar a detecção mais fácil. Figura nº 8 Tipos de DVD s. 6