Dice the onion, tomato, ginger, green chilli, and mince the coriander leaves and curry leaves (reserve 2 whole curry leaves and some minced coriander leaves for the garnish) and keep aside. Crush the peppercorns.
If the semiya has not been roasted, roast now without oil, constantly stirring so that it does not catch at the bottom of the pan. Keep aside.
Heat the oil in a pan, bring to low heat and fry the cashew (30 secs) and raisins (10 secs) separately. Remove from the oil, drain and keep aside.
Fry the 2 reserved whole curry leaves for a few seconds, remove and keep aside for the garnish.
In the oil remaining in the pan, add mustard seeds and once they burst, (10 secs) add the green chilli pieces (10 secs).
Saute the onion pieces till they become translucent (about 30 to 60 secs). Add ginger, saute for 10 secs. Add the curry leaves.
Add the peas and tomato and saute for 10 secs.
Pour water into the pan, bring it to a boil and reduce the flame. Add salt and crushed pepper. Cook till the peas are soft and can be crushed with the back of a spoon or between your fingers.
Add the semiya, stirring so that they spread and do not form into lumps. The water should just cover the semiya. At this stage if water appears in excess, remove some with a ladle. If the water appears to be less, stop adding semiya.
Cook the semiya for about 5 minutes, stirring so that it doesn't catch at the bottom of the pan. The strands of vermicelli will become soft and will thicken to almost twice their original size.
Add the ghee, stirring again. Add half the cashew and raisins.
Transfer to a serving dish (the Semiya Upma will stick to the hot pan if it is not removed quickly).
Garnish with the remaining cashew, raisins, reserved fried curry leaves and coriander leaves.
Serve hot with a tomato chutney or an onion tomato chutney.