Computing without Clocks,How does one design a processor without a clock?,Databases
Computer Communications
Just as communication between humans is important to everyday life, so communication between computers adds great value to the work that computers can do for us. Information and resources can be shared by computer users around the world. This is illustrated by the present-day Internet and its facilities.
Communication is important for people. By communicating with one another, information can be shared: past experience, current affairs, predictions of the future; from here, there and everywhere. Resources and expertise can be shared also, by communicating with the right people. Only hermits are noted for their ability to live satisfactorily in the absence of any communication with other people.
Similar remarks apply to computers too. One might imagine that a home computer, or a computer tucked into a musty office, is an island, cut off from the world community of computers. This is a delusion though, since such computers usually have an obliging communication mechanism: human beings supplying the latest fruits of the computing trade on floppy disc. >From our point of view, it is desirable to let computers communicate directly, and so cut out the middle man.
Communication is not always easy. It is not feasible for every person in the world to communicate effectively with any other person whenever desired. Differences in culture, availability and physical location cause problems. Things are even tougher if one broadens communication to include other species of animal or plant, never mind alien life forms. Similar problems affect communication between computers. Because of this, the solutions used are also similar, and so are usually familiar to us from human experience.
One aspect of communication is how it is physically achieved. For humans, there is a mixture of movement and media. People may move to make communication easier, or even possible at all. We may climb mountains to consult a guru, we may travel to work or we may attend a concert. Once the communicating parties are in suitable positions, communication might take place using sound through the air, visible sign language, telephones, television or sending items through the postal system. For computers, there is usually no movement, robotics still being in its infancy. Computers communicate using media that physically reach the computers, and that can transmit computer conversations. These include cables (electrical and fibre optic) and electro-magnetic media (infra-red, radio and microwaves).
There is a more fundamental problem than the means used to achieve communication physically. This is the problem of agreeing on what type of communication is required, and then agreeing on when, where and how it will take place. Of course, this is all motivated by the question of why the communication is required or desirable in the first place. There are three main areas where we might expect to gain some benefit if our computer is allowed to communicate with the outside world:
- getting information stored by other computers
- getting other computers to do specialised work
- communicating with humans that use other computer
(the first of these may including getting new software that will enable our computer to do new types of work). The fact that there is a range of computer hardware manufacturers, and then a huge range of software products that use the hardware, means that there are many differences between computers.
The common feature in all computer communications is the exchange of information between computers. If one computer is to do work for the other, then the information must encode instructions on what is required - a program in other words. If the computers are communicating on behalf of humans who wish to communicate, then the information must encode the human dialogue. In all cases, the type of information exchanged must be agreed upon; in particular, if it is encoding instructions or human communication, then the encoding rules to be used must be agreed upon.
Agreements on the nature of computer communications are called protocols. The name `protocol' is chosen because it matches the human usage, where protocols may be official formulae or bodies of diplomatic etiquette, that is, formalised rules of behaviour between people. An understanding of what can be achieved using computer communication protocols is essential to an understanding of what is possible and not possible, if computers are allowed to communicate in order to enhance their work on our behalf.
The combination of physical connections between computers and communication protocols allows computer networks to be created. These contain collections of computers that can communicate with each other for useful purposes. The most famous example at the moment is the Internet which allows around 10,000,000 computers and their human users to communicate.
Computing without Clocks
Computer architecture is concerned with the design of well-integrated computer systems by understanding the influences between the implementation technology, the processor and the compiler.
Inside any computer is a processor. Some of their names may be familiar to you, such as the Pentium, Alpha or SPARC. Often the name is qualified by its speed, e.g. a 100 MHz Pentium processor. This refers to the frequency of the processor's clock, i.e. the number of times the clock beats every second - 100 million times in this case.
The clock plays a vital role in the operation of these processors. It provides a time base, and the various activities inside the processor are synchronised to the beat of the clock - a part not dissimilar to a drummer in a musical group.
The modern processor is one of the most complex man-made objects. It is realised in silicon on a number of layers, each layer being developed much in the same way as a photograph.
The size of these silicon structures can be made incredibly small, of the order of one millionth of a metre. Smaller the structure - faster the clock speed, but upto a point, beyond which the presence of a clock becomes a hindrance.
One radical suggestion is to do away with the clock altogether. In which case, one can pose a number of interesting questions:-
How does one design a processor without a clock?
Would it perform better or worse than an equivalent clocked version?
Is it more difficult to design a clock-less processor which behaves correctly?
How does the absence of a clock influence the design of the rest of the computer system, such as the architecture and the compiler?
The answers to these questions will influence the design of future computers. A number of research groups around the world, including one at
Databases
Databases provide very useful services in everyday life. We will try to motivate the role that computer science plays in this, especially in terms of what it has contributed and what it can still contribute.
Databases are one of the first and probably one of the widespread applications of computer science.
- Every financial transaction on your bank account means that somehow and somewhere a database is accessed and the transaction is logged; even if it's just that you got some money from an autoteller.
- Have you ever tried to imagine how travel agents worked before they had those computer terminals on their desktop? These terminals enable them to look into many travel organisers' databases and to book almost any flight in the world within seconds by accessing airlines' databases.
- Many cities nowadays organise public and individual traffic by employing intelligent traffic guiding systems. Such systems have to cope with huge amounts of data that are stored in a database.
- Every phone call you make is, as with the first example, logged somewhere in a huge database.
These are just four of thousands of databases that we might interact with in everyday life. So, what's the big deal about them? What does computer science contribute to all this? What are the problems that computer science tries to solve? Actually, there are plenty. Many of them are considered to be solved but many are still to be tackled. Let's look at some examples:
- Imagine the scenario of the Olympic Games: there is data about time tables of the events, accommodation for the participants, results, who participates in which event in which role etc. And there lots of different people using such a database: the organisers, the participants, the journalists, officials, each one possibly being interested in only parts of the data.
The area of computer science that looks into such problems is that of database design. Computer science has developed several methods to support the design process which should lead to a concise but also to an efficient design.
- The software around the database, the database management system (DBMS) has to provide lots of reliable services to the database users and administrators and it has to provide them efficiently. It has to guarantee that no data is lost, especially when there is an [inevitable] crash, possibly due to reasons that go beyond the responsibility of the software (power failure, earthquakes, and the like). A study of a number of Swiss banks recently found out that they would go bankrupt if their databases were down for more than forty-eight hours.
The system has also to provide a high level of security. Databases can hold very sensitive information such as a company's sales numbers, product designs, marketing strategies, money transactions, employees' salaries and minutes of confidential meetings. Not everyone, even inside the same company, should be allowed to see or, worse, update all the data.
A DBMS should also provide a suitable user interface. Imagine the variety of people using a database. There are highly trained computer experts as well as people who have hardly touched a computer terminal in their life. All of these groups have to be considered when designing the interface.
Database systems studies touch many areas of computer science, some being very theoretical such as logic (eg. in deductive databases) or linguistics (eg. in natural language user interfaces) or very practical such as communications or parallel techniques for powerful high-end database systems. It is one of the most commercial areas of computer science.
3:53 AM
|
Labels:Bluetooth,Computer Peripherals
Computers
|
This entry was posted on 3:53 AM
and is filed under
Computers
.
You can follow any responses to this entry through
the RSS 2.0 feed.
You can leave a response,
or trackback from your own site.
0 comments:
Post a Comment