• No se han encontrado resultados

Capítulo II. Revisión de la literatura

2.2. Mercadeo

2.2.2. Mercados de consumo y comportamiento de compra de los consumidores

The following bus concepts are used in both the ISA bus and PCI bus.

6 A bus is also a long motor vehicle for carrying passengers, usually along a fixed route.  The fixed route part  is the reason that the term is used in computers.

40 LPI 101 Course Notes 5 PC cards • I/O addresses – to specify a specific component on a bus, the CPU uses its I/O address.  This means that systems on the bus cannot share I/O addresses. • Memory addresses – to read from or write to a particular location in memory the CPU  hardware uses a memory address.  The ISA bus separates the concept of memory addresses  from I/O addresses, although there is not a huge difference between these. • Interrupt requests (IRQs) – when a peripheral requires CPU attention, it issues an interrupt  request.   The CPU, in response to the request, stops what it is doing, and speaks to the  relevant peripheral (usually to retrieve data from it, or to send more data to it).   Busses  generally have a number of interrupt request lines, which enables the kernel to determine  which peripheral caused the interrupt.  If two peripherals share an interrupt request line, it is  possible that they will trigger an interrupt request simultaneously.  The kernel must respond  to  both  devices for proper operation.   Shared interrupts work when interrupts are Level  triggered (e.g. on the PCI bus) and not possible when interrupts are edge triggered (e.g. on  the ISA bus). • DMA channels – Direct Memory Access – Using a DMA channel allows a peripheral to  copy data directly into or out of the computer's memory.  This means that the CPU is not  intimately involved with the data transfer once it is in motion.   Use of a DMA channel  allows a device to perform direct memory access.  It is generally not possible to share DMA  channels between peripherals.

5.3 Bus conflict resolution

The Linux kernel is responsible for managing the assignment of IRQs (interrupt request lines),  I/O ports and DMA channels.  The kernel will not assign a resource to two drivers, unless it is  shareable (i.e. a level triggered interrupt on a PCI bus). A number of resource conflicts can occur on the bus. • I/O address conflict – either one or both of the devices will fail to work.  Even if one of the  devices is unconfigured, and no kernel module has been loaded for it, it may respond to its  I/O address and cause problems.

• Shared IRQs – sharing IRQ's with level triggered interrupts can cause conflicts if the kernel  only services one of the devices, and not both.  This is not likely with newer kernels, but it  can happen.   Sharing IRQ's with edge triggered interrupts will cause one or both of the  devices to fail.  If a kernel module for a given device is not loaded, the device will never  generate interrupts, and will coexist with other devices. • DMA channels cannot be shared.  The kernel will refuse to assign a DMA channel to two  devices.  The device for which a module is loaded first will work. To resolve conflicts for resources, you need to reconfigure the devices so that they do not  conflict: • Really old cards (and some new ones) are configured by changing jumpers on the card. • isapnp  can change the resource assignments for plug and play cards.   Some PC BIOS's 

contain this facility too.

• Often the BIOS includes facilities for changing the interrupts and memory locations of  built­in devices.

5 PC cards LPI 101 Course Notes 41 • IRQ conflicts between devices on the PCI bus and the ISA bus can be resolved by telling  the BIOS to reserve certain IRQ lines for the ISA bus.  I/O ports do not conflict, since the  PCI bus uses an independent range of port addresses.

5.4 PCI card configuration

The Peripheral Component Interconnect (PCI) bus includes resource assignment as part of its  specification.  To make a PCI card work, you merely have to load the correct kernel module.  To   determine   which   kernel   module   will   work,   you   can   consult   the   output   of   the  lspci 

command.

The module is then loaded using modprobe modulename.  If there are options required for  the modules, you enter them in /etc/modules.conf and run depmod ­a.

lspci – list PCI devices Each device on the PCI bus is plugged into a specific slot, and identifies itself by manufacturer  and device number: bar:~ # /sbin/lspci -n 00:00.0 Class 0600: 1106:0305 (rev 03) 00:01.0 Class 0604: 1106:8305 00:07.0 Class 0601: 1106:0686 (rev 40) 00:07.1 Class 0101: 1106:0571 (rev 06) 00:07.2 Class 0c03: 1106:3038 (rev 1a) 00:07.3 Class 0c03: 1106:3038 (rev 1a) 00:07.4 Class 0680: 1106:3057 (rev 40) 00:07.5 Class 0401: 1106:3058 (rev 50) 00:09.0 Class 0200: 1282:9102 (rev 31) 01:00.0 Class 0300: 10de:002d (rev 15)

Happily,  lspci  can   display   the   names   of   the   devices   by   cross   referencing   against 

/usr/share/pci.ids which contains a list of vendors and their products.  Even if the vendor ID  is not listed, lspci will tell you what type of device it is.

To list the components on the PCI bus, you can look at the file  /proc/pci  or use the  lspci 

command.

foo@bar:~> /sbin/lspci

00:00.0 Host bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133] (rev 03)

00:01.0 PCI bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133 AGP]

00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40)

00:07.1 IDE interface: VIA Technologies, Inc. VT82C586B PIPC Bus Master IDE (rev 06)

00:07.2 USB Controller: VIA Technologies, Inc. USB (rev 1a) 00:07.3 USB Controller: VIA Technologies, Inc. USB (rev 1a)

00:07.4 Bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40)

00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 50)

42 LPI 101 Course Notes 5 PC cards

100/10 MBit (rev 31)

01:00.0 VGA compatible controller: nVidia Corporation RIVA TNT2 Model 64 (rev 15)

lspci can show more information.  Here's lspci displaying information for a specific slot: nobar:~ # /sbin/lspci -s 00:09 -v

00:09.0 Ethernet controller: Davicom Semiconductor, Inc. Ethernet 100/10 MBit (rev 31)

Subsystem: Unknown device 3030:5032

Flags: bus master, medium devsel, latency 32, IRQ 11 I/O ports at e800 [size=256]

Memory at dd000000 (32-bit, non-prefetchable) [size=256] Expansion ROM at <unassigned> [disabled] [size=256K] Capabilities: [50] Power Management version 1

This is quite similar to the information in /proc/pci (the listing below is a partial listing). bar:~ # cat /proc/pci

PCI devices found:

###################### lotsa stuff ######################

Bus 0, device 9, function 0:

Class 0200: PCI device 1282:9102 (rev 49). IRQ 11.

Master Capable. Latency=32. Min Gnt=20.Max Lat=40. I/O at 0xe800 [0xe8ff].

Non-prefetchable 32 bit memory at 0xdd000000 [0xdd0000ff]. Bus 1, device 0, function 0:

Class 0300: PCI device 10de:002d (rev 21). IRQ 10.

Master Capable. Latency=32. Min Gnt=5.Max Lat=1.

Non-prefetchable 32 bit memory at 0xda000000 [0xdaffffff]. Prefetchable 32 bit memory at 0xd8000000 [0xd9ffffff].

5.5 ISA card configuration